Models: Introduce app.install_model.

All references to galaxy.model.tool_shed_install models should go through this instance. Right now it is a reference to the same ModelMapping instance, but the goal is to allow them to be two different mappings.
Models: Allow core Galaxy models and install tool dependencies to target different databases.

Now app.model and app.install_model may be two distinct objects not just two references to the same object. Add ModelMapping class for galaxy.model.tool_shed_install.

If install_database_connection is set in Galaxy configuration, a separate database will be targetted for the persistence of the tool shed repository information. Additional database options may likewise be specified in this case: install_database_engine_option_pool_size, etc....
Models: Database migrations for stand-alone tool_shed_install models.

create_db and manage_db should now work with install as well.

Migrations are symbolic links into lib/galaxy/model/migrate/versions of migrations affecting these tables. All future migrations to these tables should created in one place like this and linked in the other.
Models: Allow setting install database target when running tool shed functional tests.
Fixup to error handling in repository_util.py