Remove code that tries to optimize on the incorrect assumption that child actions cannot contain donuts that must be handled according to their own cache policies.

One prominent case where this causes the cache to return incorrect values is when the the main action for a request does not cache, but one or more child actions do cache. And they contain donuts.
The child action as a whole is then returned and the donut that should have been replaced is not.
Merging mlidbom's work into dev
Version bump for prerelease.
Merged mlidbom's work on the demo project
Removing the submodule as it makes externals contributions harder.
The demo project is back as a normal subdir.
Readded the child action check in DonutHoleFiller for performance reasons.

It is still possible to get the DonutHoleFiller replace content in child
actions by adding OutputCacheOptions.ReplaceDonutsInChildActions in
the DonutOutputCache attribute Options field when needed.

[ref: #7, poke: @mlidbom]
[Demo] Registering the OutputCacheManager as SingleInstance in Autofac.
Added the possibility to specify application-wide OutputCacheOptions.
Added DataContract attributes on CacheItem class.

DataMember attributes with Order attribute have been added to make class compatible with protobuf-net serialization system.