1) Added a new index.html as the main page for the demo app. With
componentized, metadata-driven tabs, this could eventually become the
main page.

2) Make reasoner configurable. Discovered a bug in Pellet where a very
simple query for an object property fails while it work in HermiT. In
general, Pellet was selected just because it handled data properties
better, but given that we can't really rely on it that much anyway, it
might be better to go back to HermiT which may be faster. Added HermiT
jar to the project so it's easy to switch and experiment with it. It
has a problem with parsing the county ontology though...it chokes on
some of the template literals.

The reasoner is configured by specifying the classname of the reasoner
factory as a "hasImplementation". The factories are not themselves
created in a standard way, but since there aren't that many reasoners
available anyway, the OntologyLoader has code to create each one of
them, still using reflection to avoid a compile time dependency. 

3) Added SearchEngine based on Google that can be used for the demo
configuration. Now, the right search engine has to be configured in the
ontology as an implementation of the SearchEngine interface. If it's not
configured, it'll fall back to SOLR (so current deployments won't be
affected). However, the SearchService now uses the DescribedRef
abstraction which means it would be better for the SolrSearchEngine
to be made AutoConfigurable rather than relying on the ConfigParam.
Merge remote-tracking branch 'origin/dev' into dev