Implement PubMed provider

PubMed provider is a provider that can search in the PubMed database and return
a set of PubMedIDs and also download into the local database some Documents
from the PubMedDatabase given a set of PMIDs is known. Workflow with this class
could be something like:

    val pubmed = PubMedProvider()
    val result = pubmed search ("some search terms")
    val pmidList = selectWhatToDownloadFromTheResult(result)
    pubmed download idList

Of course, both "search" and "download" methods return a Future. So it isn't
actually like that, since the client code will not block between calls, but it
gives some insight.

Also, DAOs have been modified to return the EntityID instead of the whole
Entity whenever a insert/update is performed.