String: Pick up bug fixes in the string library

There was a bug in the replace method.  This also switches to returning
a const reference to the empty string singleton.
DebugAccessPort is now stateful.

Target used to provide a stateful facade over DebugAccessPort, but
I'm trying to limit Target to the functionality that depends on a
specific CPU core.  Since the DebugAccessPort SELECT behavior is
specified by ADIv5, it can safely be hidden inside DebugAccessPort
itself.
FTDI: Move towards supporting more FTDI based programmers

This is the first step towards a more robust programmer enumeration
strategy.  We now use libusb to locate the ftdi chip we will use.
This still just looks up the part by VID:PID which is problematic,
but libusb provides the functionality required to traverse the bus
looking for a specific device based on other parameters.

This commit also adds vid, pid, and interface command line parameters
for controlling which device is selected and which interface port of
the selected device to use.
CommandLine: Get support for parsing hexadecimal integers

VID:PID pairs are usually specified in hexadecimal.  The latest
version of the command line parsing library supports this.
IDCode: Don't read the idcode in the SWD driver initialization

This can be done later, there is nothing SWD driver specific about
it.
Formatting: Return MPSSE SWD driver back to it's original style
Debug: Make debug logging more useful

This adds a few log messages and sets the levels so that they are
more readable.
Timeout: Fix the timeout loop counter to match the debug message meaning
Hack: attempt to get bus blaster working
Response: Factor out mapping responses to Errors
Error: Don't include the full Error namespace

This ensures that all uses of the Error enum are prefixed with the
Err namespace qualifier.
Programmer: Add support for BusBlaster

This change includes new support for selecting a programmer.  The
default programmer is the um232h evaluation board from FTDI since
that was the first board that worked.  Once a programmer has been
selected the vid, pid, and interface can all be overridden from the
command line.

The BusBlaster must have been programmed with the KT-link RTL.
Consiquently, this version should now support the KT-link as well,
but that has not been tested.
README: Update docs to discuss Bus Blaster support
swd_mpsse: switched binary literals to hex. :-\

I love binary literals, and they're entirely appropriate here.
However, if we want Mac OS X compatibility, we need to compile with
llvm-gcc, which is based on 4.2.1 and doesn't do binary literals.

This *might* be fixed by a full-on move to Clang.  Haven't tested.
USB: Remove explicit control of kernel driver attachment

This was not strictly required and is not supported on MacOS.
Format: Remove tabs that crept in and force spaces to be used in Emacs
ErrorStack: Use newer cleaner version of the error stack library
swddude/MPSSE: moved IDCODE read back into driver.

ADIv5 specifies this as part of the SWD initialization, so the
driver is really the right place for it.

Added a big comment to make this more clear in the future.
swdprobe: gutted!  Compiles again.

Of course this doesn't actually work.  It was written for the old
AccessPort abstraction, which no longer exists.  I'm rewriting it
on top of DebugAccessPort and Target.
swdprobe: code to find and traverse ROM tables.