Replace curried lookup function with a simple one

Actually there was no reason for the lookup function to be curried,
don't know why it was defined that way.
Refactor some more
Add guards for '__filter' lookup

The guards check that

1. The val is a Q object
2. The result of the first filtering is a nested collection so that it
   can be further filtered using the Q object

If not 1 and 2, it raises a LookupyError. This commit also contains
tests for these two scenario.
Update README with examples