Refactoring toward allowing tool shed installs outside of web threads.

Continuing work started by Greg, nearly all the helpers called from "install_repository_revision" in tool_shed_repositry API take in app instead of trans.

This was 36 fairly atomic commits that I have rebased into 1 (even for me that is a lot of commits for absolutely no new functionality). One can track the invidual steps and check work here: https://github.com/jmchilton/galaxy-central/compare/tool_shed_hacking.
Rework ToolShedRepositoriesController API controller to use newer API decorator.
Refactor common code out of tool shed repositories API...

... and rework suc.have_shed_tool_conf_for_install to not require trans.
Add AdminRequiredException to galaxy.exceptions.

There was a INSUFFICIENT_PERMISSIONS error code - but that seems more for user-land sharable objects.
Make helper function for some duplicated code in tool shed repositories API.
Improved exception handling when installing repositories on tool shed comm errors.

Now 5XX status will be set.
More specific exception handling.
Break-up big function install_repository_revision in tool_shed_repositories API.
Refactor install_repository_revision - move all API formatting logic to end of function.
Refactor code actually orchistrating installs out of high-level API action.