[JAVA-1390] Phase 2: doing the release. 

Working release process.  It fits together end to end but it's not pretty, and could use some tidy up, however I thought it best to get some feedback on it as it is. The last couple of stages were more complicated than I expected.

You can test the release by running ./gradlew release -DreleaseVersion=3.0.0

Roll it back by removing the 3.0.0 tag, deleting the draft release notes and resetting the current branch back two commits.
The credentials have to be stored in a file?  Is there any other way?