Slight docs correction.
Update .gitignore.
Refactor string substitutions code, fix %a for non-git VCS

Changed @vcs methods: Instead of letting each perform substitution of %b, %s,
etc. on its own, they now return a hash with various values (such as branch,
revision, hash, ...). Then vcprompt() performs the actual substitutions.

This has multiple advantages: default values get automatically handled
uniformly (e.g. revision defaults to hash and vice versa), and adding new
substitutions is easier and less bug prone (e.g. previously
%a was only substituted by the git formatter, making it only usable
inside a git specific format string; this can't happen
anymore). Finally, all substitutions are now applied in a single spot, which
simplifies debugging.

Also, %s and %n are now replaced centrally, too, removing some more duplicated
code.
Remove useless comments.
Renamed HISTORY to CHANGELOG.
Don't fail if an executable cannot be found.

At some point in the future all the Popen try/except blocks
should refactored to just be a function that returns a tuple of
(output, returncode).
Refactored Popen calls into popen function.
v1.0.1
Fix parsing of `bzr status` output.
Better handling of '%a' and '%m' tokens for Subversion.
Fixed '%m' token always being displayed in Python 3.
Add hacking/contributing guidelines.
test_modified_format_chars should work everywhere.
Remove --without-environment option.

This was only ever intended for internal use. It makes more sense for
this to be part of the tests, not part of vcprompt itself.
Use local repositories for testing.

This is a bit (well, a lot) heavier on the disk and is a bit more
complex but doesn't require anyone to hit the network every time
they want to run tests.

Bonus: I don't have to maintain accounts at a handful of different,
and otherwise useless, services.

There's a lot of ugly duplication in the Makefile which will need to
be cleaned up. Perhaps move this step into the tests themselves?
Clean up Makefile slightly.
Bazaar's hash isn't really a hash so don't use it.
Use readline() if we're only reading the first line.
quicktest is a BIG FAT .PHONY
Update changelog.