DDR elasticsearch -> docstore refactor

- Use "DDR.docstore" and the official Elasticsearch API instead
  of DDR.elasticsearch.
- massage_query_results() and other functions moved to DDR where
  they can be used by ddr-local.
- Numerous changes due to fact that docstore returns slightly
  different data from previous.  Sometimes DDR.elasticsearch
  returned JSON where the new one returns Python data structures.
- All metadata is now stored in DOCSTORE_INDEX along with
  documents.  This should make it slightly easier to do staging.
mark search input text blacklist as such

We really should have a regex that filters out all but the chars
that we want to accept.
don't try to add URLs to search results placeholder objects

Recap: Django paginator needs to have the entire result set.
We don't want to actually keep the entire set so we keep the
current page and pad the results with placeholder objects.
catch query errors and package in results object
Merge branch 'master' into 149-elasticsearch-docstore
print time and info about app server (pid, host, commit) in base.html
pin sort-thumbnail bc errs with remote files in v11.12.1b

For some reason version 11.12.1b fails when trying to thumbnail
remote files so don't use that version.
added blank pcc license template
Merge branch 'master' into 149-elasticsearch-docstore

Conflicts:
	ddrpublic/ui/templates/ui/license-pcc.html
format list sorting args the way docstore._clean_sort experts