Added the structure for a shared data collection
Set up the skeleton to use a wrapper

The wrapper is used to restrict whether items can be added or removed
from the original collection by the remote system.
Implemented most members
Added message for adding an item to a shared data collection
Clean up message type names
Corrected capability property behavior and checking
Rename CoreData property to SharedData
Simplified shared collections

Made the decision to make shared data read-only by the remote system.
Some interfaces were added to make this possible and expose
non-type-specific methods.
Remove "AddTo" request and add "Count" request
Minor whitespace fix
Implemented Handle()
Remove ObjectId property - not needed
Implemented count functionality
Made collection read-only
Minor documentation fix (copy/paste fail)
Added request message for creating an enumerator
Implemented Handle()
Implemented GetEnumerator()
Implemented CopyTo()
Added a method for checking if a collection contains an item

This method compares marshaled data, which is slower than normal, but
works for remote data.