Fixes #14

This may be a bug that should be fixed in Django, but I haven't dug into as_sql() enough to understand exactly why it's raising an EmptyQuerySet exception in this case. However, the fix for this specific issue is simple enough -- catch that exception and execute the query directly.

We might be able to just return 0 and save the query in this case, but it seems safer to just execute it.
Add in support for GenericForeignKey fields.

GenericForeignKey weren't being included in a model's cache keys, but they should have all the same cache invalidation implications as normal ForeignKey fields, so this commit adds logic to be aware of them.
Merge branch 'GenericForeignKeys'