Initial refactor to support multiple backends, declared base backend, added elasticsearch backend
Implemented elasticsearch backend, probably broke whoosh support in the process.
Adding requirements for pyelasticsearch; will remove later if whoosh is re-implemented