Checks if a give SignatureToken represents a primitive type and, if so,
returns MoveTypeLayout for this type (if available). The reason we need to
return both information about whether a SignatureToken represents a
primitive and an Option representing MoveTypeLayout is that there
can be signature tokens that represent primitives but that do not have
corresponding MoveTypeLayout (e.g., SignatureToken::DatatypeInstantiation).
Resolve the JSON args of a function into the expected formats to make them
usable by Move call. This is because we have special types which we need to
specify in other formats. Additionally, it checks for #[view] attribute
presence in function metadata if a view/non-view function is expected.