Simplify GetNthType by using boost function_types.

Not only does this simplify the implementation, it doesn't crash the
VisualStudio 2013 compiler like the original implementation did.
Simplify Tags by using boost function_types and mpl helpers.

Not only does this simplify the implementation, it doesn't crash the
VisualStudio 2013 compiler like the original implementation did.
Removed unneeded commented out code.
Add a simple binding test to expose the window compile issues.
Verify types being typedef with a new name doesn't break the tag system.
Test tags embedded inside a function pointer definition work properly.
Update all of dax to use the new Signature types. Remove the old types.

This has been done for 2 primary reasons.

1. It reduces the complexity of ControlSignature inside worklets.
   People had significant challenges understanding what
   Field(In) meant, while FieldIn is more explicit.

2. Allows us to support the Visual Studio compiler. The Visual Studio
   compiler hates function types being embedded into other function types,
   which is exactly what dax does. Now instead we use function pointers,
   which all compiler like.
Modify FindBindings to be easier to read, and to compile with VisualStudio.
Move exec arguments Vertices and KeyGroup over to the new system.
Use srand and rand to properly cross platform.
Correct typo that caused UnitTestBindings to fail.
Convert ExecObject over to UserObject in the new system.
Fix the format of FieldArrayHandle
Clean up the implementation of FieldArrayHandleImplicit and write a test.

We never had a test for using an ArrayHandleImplicit with the ConceptMap.
Clean up the implementation of FieldArrayHandleConstant and write a test.

We never had a test for using an ArrayHandleConstant with the ConceptMap.
Clean up the implementation of FieldArrayHandleCounting and write a test.

We never had a test for using an ArrayHandleCounting with the ConceptMap
Clean up the implementation of FieldArrayHandlePermutation and write a test.

We never had a test for using an ArrayHandlePermutation with the ConceptMap
Clean up the implementation of FieldArrayHandleTransform and write a test.

We never had a test for using an ArrayHandleTransform with the ConceptMap
Correct Compare to work when windows.h is included.
Merge branch 'WindowsSupport'