WIP: Fast Filtering

Fast table filtering (part of issue #292) is added here. It's committed on top of pr #314.

Issues
- ~~No exception is raised when all obs/samples are filtered out. Do we want it?~~ Kept.
- ~~So far it only accepts `function(id, metadata)` to filter, not an iterable of booleans.~~
- ~~I've already removed the tests for the old methods, but not the actual methods yet.~~

Re. whether to "compact" or not the filtered array, there's a parameter (`remove`) that controls what happens (table is compacted by default). You'll need to get the code and edit the parameter inside table.filter if you want to try it out at the moment.