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.include?(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 => [<Database object>, ..]

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

As per the dicussion in 3d928a09 which higlighted a couple of issues
with that approach like high memory consumption or increased startup
time, we revert those changes.

Instead of maintaining a set of accessions per Database in memory, we invoke
blastdbcmd to detect if a given accession is in a particular database or not.

Additionally, we move `which_blastdb` from `Sequence` to `Report` class so that
this method might be invoked when constructing links per hit, which is what the
original intention was. And we only check `querydb` instead of all databases so
as to provide more relevant result.

The feature and solution is courtesy:
Volodymyr Zavidovych <vo.zavidovych@gmail.com> (close #99).

Signed-off-by: Vivek Rai <vivekraiiitkgp@gmail.com>
Add test for Database.include?

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>