DDF-249 fixed various issues in the async endpoint

Reduced possibility of running out of heap space (this will be resolved when we move to a real cache)
Removed separate paths through code for local and federated sources
Added back logic to check if a list has changed and modified it slightly so that paging works as expected. Empty results will now be returned rather than no result so that the client can stay in sync.
Fixed issue with the client expecting the wrong number of sources to return when selecting sources individually