Move common initialization code to a TesselBase class
Make `findTessel` and `common.controller` take an options argument.
Make claiming a device optional.

Also clean up the findTessel function
Refactor DFU and `tessel update`

DFU functionality is merged with the same code that handles app mode
device handling.

`tessel update` is refactored to the new DFU APIs and also now checks
serial numbers to ensure that the same device is used throughout the
update process. I took the opportunity to clean up much of the `tessel
update` code.

Fixes #115
Prerequisite for #109

`tessel erase` is refactored to the new DFU APIs and automatically uses
the RAM image to erase if in bootloader mode, or normal erase in app
mode. The `--force` option is removed because it is now automatic.
(There was no point in using `--force` in app mode, because it would
fail to switch to the bootloader in any case --force would be useful)

Fixes #102
Support multiple Tessels via TESSEL_SERIAL env-var

Fixes #109
Add `tessel boot` to replace `tessel-dfu-tool run_ram`
MOCK_USB for DFU