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.