Added tests, updated README, cleaned code

Added `filterable-utils.js` to help prevent code duplication. Added more
tests to verify new functionality. Updated README to include the current
supported options.