Some minor fixes.

Made it so you don't have to specify a message, mainly just to keep the merge commit message that gets saved.
Added a null check to Push in case a null ref spec was passed in.
A fix to merge, which i accidentally broke in my last commit.
Added Add and Remove commands to the web-api.

Fixed a problem where if there was only one conflict in the conflicts file the file wasn't getting removed.
Made commit require a transaction, to preserve stability.
Merge branch 'RemoteWebApi' into SprintInProgress