Update jclouds dependencies. Fixes #36
Force the process to exit once it is done. Fixes #37.

This is issue in Clojure explains is related: http://dev.clojure.org/jira/browse/CLJ-959
Likely fix for #39.

I think that the upgrade from jClouds 1.4.2 to 1.5.1 in the previous
commit (9d6e47b7) made a change in how `.createSecurityGroupInRegion`
works (see security.clj).
Allows storm-deploy to select both a storm branch and a SHA1 commit

The storm `--release` model is very unclear and not all that useful.
Currently there is a choice of passing a no release, in which case you
get a version of storm based on the latest commit from master or you
get to pass a release which gets you the latest commit from that
branch, e.g.,

    lein deploy-storm --start --name mycluster --release 0.9.0

gets you storm 0.9.0wip16 (roughly, actually it gets you commit
(d12c33543c9b2e8c8e35908f8672fa06edd18c2e, which is between 0.9.0-wip16
and 0.9.0-wip17)

and

    lein deploy-storm --start --name mycluster

gets you the latest commit from master. It's not possible to get
anything inbetween.

This commit drops the `--release` argument in favour of a `--branch`
argument (equivalent to `--release`) and a `--commit` argument, which
takes a SHA1. If a commit is passed then we attempt to checkout that
SHA1 into a new branch and use that. This gives us much more
flexibility, e.g., to checkout storm 0.9.0-rc2 you would run

        lein deploy-storm --start --name mycluster --branch master
--commit 32098d5b2694434ea43d430a4703fbe51bab268f

If you want the latest version from a specific branch (say 0.8.3) you
can execute

        lein deploy-storm --start --name mycluster --branch 0.8.3

and if you want the bleeding edge you can still execute this get the
latest commit from master

        lein deploy-storm --start --name mycluster

The diff on this commit is bigger than it might have been because i
deliberately changed `release` to `branch` wherever possible. I think
now that storm has both releases (since 0.9.9-rc1) and branches we
should make the code closer to what's actually happening (i.e.,
checking out branches rather than releases).
Merge pull request #40 from xpe/issue-39

Fix for #39.
Merge pull request #45 from lorcan/checkoutcommit

Allows storm-deploy more flexibility - checkout branches and SHA1s
BugFix: --branch was being ignored in storm-deploy due to typo

Value of variable `branch` was not being used, rather git was searching
for the branch called "branch".
Merge pull request #47 from lorcan/fixB

BugFix: --branch was being ignored in storm-deploy due to typo
Moved the branch functions into their own namespace

To facilitate reuse.
BugFix: storm pre 0.9.0 requires lein1.

We test which branch is being used - if it is <0.9.0 we use lein2
(currently 2.3.2), otherwise we use lein1 (currently 1.5.2). This
addresses a bug reported by Ryan Ebanks on the mailing list:
https://groups.google.com/forum/#!topic/storm-user/5qOUkMfXkj4
Merge pull request #48 from lorcan/customlein

lein1 is used for deploying storm <0.9.0, otherwise lein2 is used.