Search filters now apply to UTF grid as well as tiles

Previously we had an OpenLayers subclass of "Layer.XYZ" with the filtering logic.
I couldn't see how to make a similar subclass of "Layer.UTFGrid" without duplicating code,
so instead we apply the new function makeFilterableLayer to both XYZ and UTFGrid layers.
It is conventional in node-style modules to drop the '.js' in require statements.
Merge pull request #125 from RickMohr/filter-utf-grid

Search filters now apply to UTF grid as well as tiles
Strip punctuation when tokenizing species names

Some names are enclosed in quotes, which prevent easily searching.
Move Bacon utility functions into separate module
Clear the hidden input when delete/backspace is pressed.

Fixes #122
Change name of typeahead wrapper module for consistency
Some simple refactoring from code review suggestions