Migrate search features to use Haystack 2.x

This currently uses haystack 2.0.0 and whoosh 2.4.1. Note, this is not
latest stable versions of either due to incompatibility issues. See
http://stackoverflow.com/a/19502309/407954
Add comments to explain the Haystack functionality being used
Update search document templates to not render None values

This utilizes the template filter `default` to replace None values with
and empty string.
Searching for the empty string returns zero results
Fix formatting for flake8
Define a fixed set of data values to test against

One of values failed ("IT") due to it being a stop word. To prevent these
hidden issues from cropping up as development continues, an explicit set
of values are now tested.
Define a base DataIndex class to remove redundancy

Note, the indexes.Indexable mixin cannot be used unless get_model
returns a valid model. That is the reason why it is used in the subclasses
and not the DataIndex class.
Abstract out search method to remove redundancy across managers
Remove unnecessary cast to list from ValueListQuerySet in tests
Merge pull request #165 from cbmi/haystack

Upgrade to Haystack 2.0.0