Clean up BzrNewError, other exception classes and users.
This cleans up the probably-mistaken BzrNewError behaviour of using error class docstrings as their format string. Instead errors can define a _fmt attribute with the same meaning. The docstring is now reserved for its regular purpose of documentation for programmers. This behaviour is added to BzrError. BzrNewError is left in place for compatibility but no builtin errors use it anymore and it gives a deprecation warning on construction.
BzrError now accepts either a single preformatted string, or a set of named parameters to be substituted in to a format string for that class. This behaviour is cleaned up and a couple of callers that depended on the Python2.4-style exception args tuple are fixed.
Display of unprintable errors is slightly more robust.
errors.IncompatibleFormat was defined twice (shadowing the first definition), so one use was disambiguated to IncompatibleBundleFormat.
UnsupportedEOLMarker called the wrong superclass constructor.
test_time_creates_benchmark_in_result was too dependent on benchmark timing and has been loosened.
Some error representations changed slightly because of this (e.g. in use of punctuation.)