Merge pull request #4 from cleandart/concurrency-issues

Concurrency issues
Merge pull request #5 from cleandart/id-negotiation

Id negotiation
Merge pull request #6 from cleandart/ids-assigned-by-client

Ids assigned by client
Collection is final public field in MongoProvider.
Random part of ID prefix is generated only once per Publisher instance.
DataProvider API changed: argument "_id" is no longer required in add and change methods, since it can be extracted from argument "data".
Timer removed from Subscription. Added possibility to start/stop receiving data from server.
Merge pull request #8 from cleandart/refactor-api

Refactor api
MongoProvider concurrency issues resolved using collection locks.
MongoDatabase method createIndex corrected.
Merge branch 'master' into concurrency-issues
Tests of Subscription do not last infinitely long.