Bug fix release:
- `FactBase.discard()` and `FactBase.remove()` were broken. They have been fixed and unit tests added
- The query `singleton()` and `first()` didn't work correctly, they should raise an exception if the query results are empty.
- Some documentation fixes, especially adding some description of the query `select()` clause being passed a lambda function.