git-ship: no longer syncs branches, requires branches to be in sync

@kevgo 

This is a major change to the git-ship interface. 

Positives
* there is no way git-ship can error due to conflicts
* removes the very high redundancy between git-ship and git-sync
* better protects the user from shipping breaking changes

Negatives
* Slows down the shipping process (but offers better protection)
* Requires the user to type in git-sync if the branches are out of sync (I don't think its a very good user experience if you we do it automatically for the user).
  * This could potentially be an expansion to git-ship, but we would run the git-sync command and not have to have all the redundant tests.