FLOE-227: Queued dataSource requests

Added a queuedDataSource to wrap other dataSources and queue up set requests. This way only one set will attempt to execute at a time, thereby preventing concurrency issues.

http://issues.fluidproject.org/browse/FLOE-227
Plenty of commentary required here about what the requirements and behaviour are for this wrapper.