[WF4] Support for ActivityDelegates that pass results. Tests. Fix-ups.

-Runtime now supports ActivityFuncs (1 return value) and other
 ActivityDelegate subclasses that return any number of result values
-After scheduling their output values are retrieved through callbacks.
-ActivityFunc's implemented with up to 3 input arguments*
*Rest can be easily added
-InvokeFunc / InvokeAction supporting up to 3 input args*
-NativeActivityContext ScheduleAction and ScheduleFunc signatures
 corrected. Overloads for up to 3 input args implemented*
-Few more implicit type conversions for arguments in general
-Fixed a few failing tests that have been outstanding for a while
-New tests and refactoring of old tests. Moved few tests files which
 were in wrong directory.
[WF4] Implemented base extension support with tests.

-Quite a lot of subtle characteristics in how extensions are handled.
-Some of the extensions facility relies on the WorkflowInstanceProxy
 class, which implies that a WorkflowInstance should be used during all
 workflow executions. I haven't added support for thread control within
 it however making it unsuitable to use within the WorkflowInvoker host.
 Thus I've enabled the use of WorkflowInstanceProxy without having a
 WorkflowInstance to proxy too for the moment.
-WorkflowRuntime no longer retrieves metadata from workflow on
 instantiation.
-Tuned makefile and sources.
[WF4] Base execution properties implementation.

-Supports IExecuptionProperty (for TLS management) and
 IPropertyRegistrationCallback (for custom reg logic)
-Doesn't support adding execution properties from host, (though none of
 the hosts seem to expose that feature to the user)
-Could do with more tests. Plus there is scope to refactor the existing
 tests. More repeating code and less atomic than usual.