Build index of seq_ids for each database

Each Database object now contains a set of seq_ids contained within it.
This allows us to determine whether a Database contains a particular
sequence id or not.

e.g., Database.has_accession?(accession) => true/false

Another use of this feature is that it provides reverse lookup i.e.,
find which database contains this particular sequence. However, in many
cases a single sequence id can be present in multiple databases at a
time. We return all of the values and not just the first value.

e.g., Sequence.which_blastdb(accession) => [<Database object>, ..]

Signed-off-by: Vivek Rai <vivekraiiitkgp@gmail.com>