Extract interfaces for all RevObject implementations

All RevObjects implementations but RevTree were concrete
classes instead of interfaces. This refactoring introduces
interfaces RevCommit, RevFeature, RevFeatureType, and RevTag,
and their default implementations RevCommitImpl, etc., making
the repository object model homogeneously defined by interfaces
instead of a mixin of interfaces and concrete classes, hence
allowing for alternate implementions, as may come from
optimizations of storage backends.
added some docs about osm log mechanism
housekeeping: routine imports organization
Housekeeping: eliminate compile warnings, dead code, etc.

This reduces the number of compile time warnings (as
reported by eclipse) from 257 to 83. Some about using
deprecated APIs are left for a next round.
fixed typo
Housekeeping: add missing (c) headers
Reimplement MongoGraphDatabase without blueprints
Remove blueprints dependencies
first functinoal web console
(WIP) Redo web terminal using jqconsole library
Allow GeogitCLI to use a provided GeoGIT and not take ownership of it
Add redirect so that users don't need to worry about a trailing slash in web console
show error message and don't issue empty commands in web-console
Make web-app use CLIContextBuilder to take advantage of plugin setup
remove 'jquery-terminal' files, we're using jqconsole now
add 'clear' command to web terminal to reset the terminal
add license header to jqconsole.min.js
change web-console prompt color
Buffer web console output to a temp file, and limit it.

Use a FileBackedOutputStream to buffer large outputs to
a file if need be, and limit the number of characters returned
to the web client. The limit is configurable through the
web.console.limit config option and defaults to 16k characters.
Make web-console disabled by default. Enable with config web.console.enabled true