Implement a 'bzr push' command, with saved locations; update diff to return 1.
* 'bzr diff' now returns 1 when there are changes in the working tree.
* 'bzr push' now exists and can push changes to a remote location. This uses the transport infrastructure, and can store the remote location in the ~/.bazaar/branches.conf configuration file.
* WorkingTree.pull has been split across Branch and WorkingTree, to allow Branch only pulls.
* commands.display_command now returns the result of the decorated function.
* LocationConfig now has a set_user_option(key, value) call to save a setting in its matching location section (a new one is created if needed).
* Branch has two new methods, get_push_location and set_push_location to respectively, get and set the push location.