FLUID-5542: Queued DataSource

Added a Queued DataSource that can combined with different requestQueues to synchronize, throttle, and debounce requests to a DataSource.

http://issues.fluidproject.org/browse/FLUID-5542

This is an extension of the work started in https://github.com/fluid-project/metadata/pull/43
We should put this function and the others into this file into a longer namespace to avoid the possibility of conflicts.