Fix up push test failures
Check branch, branches and remote with NSParameterAssert()
Remove assumption that local and remote branches have same shortName