Merge in more GPG work, and more Branch-api-shrinkage.
* Branch.remove has been moved to WorkingTree, which has also gained lock_read, lock_write and unlock methods for convenience. (Robert Collins)
* Two decorators, needs_read_lock and needs_write_lock have been added to the branch module. Use these to cause a function to run in a read or write lock respectively. (Robert Collins)
* Branch.open_containing now returns a tuple (Branch, relative-path), which allows direct access to the common case of 'get me this file from its branch'. (Robert Collins)