Changes to variant type:
 * Fixed type setting error in copy & move constructors.
 * Added is_xxx() type testing functions.
Added size() method to variant.
variant: added get_xxx() methods for non-collection types.
variant: added operator[] methods for array & dict types.