Merge branch 'develop'

Always update before a merge.
Updated documentation.
Update the config file to be consistent, and detect outdated ones.
Merge branch 'develop'
Merge branch 'develop'.

Bugs squashed:

* Fix bug where attempting to use 'switch --pop' would not use the branch stack when an upstream was set.
* Fix bug where removing an item from the middle of the branch stack would leave the ids non-sequential.

New Features:

* Add --auto option to merge, automatically commits with a meaningful message if merging succeeds with no conflicts.
* Detect tree conflicts as well as file and property ones.
* Highlight (using an asterisk and ANSI colours where available) the current branch when listing upstreams.
* Fix for case-sensitive filesystems.
Merge branch 'develop' into 'master', fixing the svnbase command.
Merge branch 'develop' into 'master', fixing use of Svn::getRoot().
Merge branch 'develop'
    Add another missing file status constant.
Merge branch 'develop' into 'master'.

Add caching to avoid calling the same svn commands repeatedly.
Implement 'abandon' command, allowing branches with upstreams set to be quickly dropped.
Add 'cleanup' subcommand to upstream, which removes upstreams for dead branches.
Fix setting an upstream on currently checked-out branch.
Automatically include the merged commits' messages in the auto-merge commit message.
Merge branch 'develop' into 'master'.

* Add support for --auto in the reintegrate command.
* Add fixes for --reintegrate under Subversion >= v1.8.0.
Convert to spaces!