Added NativeBinary.buildable property (currently internal), which makes it easier to build all possible variants of a native binary

- For Gcc-compatible toolchains, update the compiler/linker args on the native binary
  to target a platform, rather than targeting the tool chain.
- For both visualCpp and Gcc-compatible, set the 'buildable' flag for a binary based on
  the ability to target the platform
Don't build variants for Platforms that are not supported by the toolchain
GccToolChain no longer supports 64bit binaries on Windows (until we have a test platform)

- Updated 'variants' sample app and added a test