Make sure elasticsearch uses version 0.90 apiVersion

Because there is a newer version of elasticsearch, newer versions of the
client will try and use the latest version of the API. To prevent this
we explicitly state which version of the API we want to use.
Validate queries before executing them

Rather than show the raw elasticsearch errors, use the validateQuery
method to check them, then return a more friendly error message if the
query isn't valid as well as setting the status code to 400 to indicate
a client error, rather than a 500.
Move all storage selector logic into correct middleware
Add popit option to storageSelector middleware

This allows popit to use the popit-api storageSelector middleware, which
exposes the models in popit-api to the main application. Eventually this
will mean that we can just have one set of models in the API which both
applications can use. This means that popit UI can save changes to
models and they will still use the popit-api model layer (which ensures
they get indexed into elasticsearch etc).