Support VARIANT on both 32-bit and 64-bit platforms.

* Split variant implementation into architecture-specific files
for the struct definition, and an implementation file for methods
* Use build tags in architecture-specific files to determine which
struct definition to include
* Add NewVariant constructor to simplify and standardize construction
of VARIANT's
Use blank identifier instead for "filler" bytes.
Merge pull request #40 from mgspross/issue38-alternative

Support VARIANT on both 32-bit and 64-bit platforms.