Add simple application interface and object registry

solum/objects/__init__.py supports loading and initializing a set of
associations between public interfaces (solum/objects/application.py,
etc) and private implementations. By default, backends are loaded
as packages, with a load() method on the package module expected to
handle invoking solum.objects.registry.put(name,cls) for each
implementation. A new config flag "backend" is loaded under the
"database" group to represent the persistence backend type.

The common exception and initialization code is based on nova commit
93efad46aa1cbb9aef68561aca49278ef7584983, with slight tweaks for
Solum.

Change-Id: If33965825ce4978106e7021d62b16688d28fa29e