#371 - Add can_administer to JSON.

Indicates which pipelines user has administration access to.
#371 - can_administer, settings_path to pipeline.

can_administer and settings_path in the JSON were at pipeline instance
level. But, ability to administer and the path for the settings of the
pipeline are not for the instance. They're for the whole pipeline. So,
moving that out.
#371 - Add support for pipeline lock data.

Provides two new bits of information:

1. is_locked: Is the pipeline currently locked?

2. unlock operation: If it is locked, and can be unlocked by
   the user, then an unlock operation will be present.
pipeline instance api
stage instance api
#000 - Fix for null message in health state.

Especially in cases of plugins, if the return value is null, then
ServerHealthState constructor fails.
Post-commit hook for mercurial

Follows along the same line as git. Moved GitUrlMatchers to be generic enough to be used by mercurial as well.
form to upload a plugin jar in plugin tab
rails now delegates uploaded file to plugin manager
manager uploads the jar plugin to external directory
added test for view plugins
manager now returns a response; display a flash success message on the UI
Upload plugin form with localized labels, modified vendor output in gitignore
Removed duplicate form
Renamed plugin-file to plugin id for form
Validating jar file for plugin upload
Fixed the failing unit test. Notice that I've introduced a protected
method for better test coverage; a better way is to have a wrapper class
around the fileUtil so we can test the shit out of every
exception we'd like, but that'd a good follow-up refactoring commit.
Form formatting and updated localization labels. Flash error message styling
#000 - Missed writing test.
delegated writing and validating tasks to Writer and Validator from the Manager, respectively; first step to create a wrapper class around FileUtils - it captures .copyFile method only, for now.