Inverse filtering of catalogs

I needed to do some inverse filtering on my catalog (e.g. return the events that *do not* match the given criteria).

Here are the modifications I made to `Catalog.filter()`:

- Catalog.filter() can now return inverted results, ~~if "inverse" is passed as an argument~~
  if `inverse=True` is passed as kwarg.
- Code reorganization for easier readability

TODO:
  - [x] docstring
  - [x] test case