Moved fake manager creation and initial configuration into the proxy generator (Part I)

This is the first part of PR #372 (we split it up into 2 PRs as mentioned there).

It solves #371 partially, namely that the default behavior is available inside the c'tor call. Therefore it also solves the bug #368 (see the `when_faking_a_class_which_calls_virtual_property_members_in_constructor` test case).
Originally I saw no reason why we should serialize the sink provider (and even the `FakeManager`, which is referenced by the tag field). Because all the specs just mentioned "should be serializable" (and note that they all are green with the `NonSerialized` field in the `ProxyInterceptor`). So I decided to avoid making `LazyFakeManagerProvider` serializable (and all its dependencies).

But: During writing an answer for your comment here, I mentioned that I broke one maybe important use case: When a fake is instantiated in one AppDomain but *used* in another and therefore serialized in between (see the new integration tests in `FakingClassesTests`). If we want to support this case, I provided a 3rd commit which makes `LazyFakeManagerProvider` serializable without including the initialization services, because they aren't needed after the provider was initialized (which happens before handing the fake to the user by the `EnsureInitialized` call).