Search storage tests

- Search now receives and filters by the submitter's id. 
- Search in postgresql does not filter by submitter if submitter is none. 
- Search in memory returns each document once, even if it matches multiple search terms. 
- Tests added for search   
Could you also change `def search(self, limits, type_=Document, submitter=None):` to `def search(self, limits, type_=Document, submitter_id=None):` please?  It'll be a little clearer that we're expecting the id of the submitter, not the whole dict. :)