Issue #78

Fixed the multi-threaded return type exception by splitting the
interceptor context into a global one and one for the current call to
Intercept.

Would have preferred to simply find the CurrentCall wherever I needed
it, but this broke the MockSequence tests.  I'll explain this in the
comments to #78.
Merge pull request #80 from MatKubicki/master

Issue #78
Add naming to mock objects, to make them more easily distinguishable in tests
Add mock names to proxy instances in addition to the mocks themselves
Extend mock naming to mock names of classes, in addition to instances.
Use C# code provider to get clean simple type names in tricky cases (i.e. generics)