QueryTrigrams should return all known documents on empty trigram list

The understanding then is that QueryTrigrams is filter against all the
documents, rather than an intersection.  So, the result of querying for
all document ids and filtering none is the full document set.

Fixes #4
Oops, Add() was adding documents with the wrong IDs

len(idx) is the number of trigrams, not the number of documents.  Now
that we track all the document IDs, we can do this correctly.
Change Add() to return the generated DocID to the user