Fix bug: SEQ writes the wrong length of injection.

Bug was introduced in commit 9655a87354d089de716bc417cada90c02fb078b1.

Fixed by keeping track of "number of bits written to sequence" and
updating that value in the specific case that the first command is an
injection (dealt with in a special way).

Along the way, changed the _block_length member variables to a dict,
_block_lengths[...]. Acceptable keys are currently 'pixel', 'global',
and 'inject'.
Change test_multi_column.py into a unittest.
Add unittest file for Pixel class.

To run tests, must unplug/re-plug in USB cable. To help with this, there
is a time.sleep(5) before each test is run.

Currently tests "set_global_register" and (some of) "write_global_reg"
methods.
Add more test conditions to write_gr method.

In particular, that there's no DACld command.
Make "default"/empty pattern a parameter.

Allow user to set pattern for unused bits in global register when
calling set_global_register.
Allow tests to run sequentially.

Using del self.chip to reset chip.
Reverse order of bitarray input to global register

Now an input of bitarray("10") will get output first 1, second 0 instead
of the opposite.
Add more tests, refactor global register setup.

Test for DACLD.
Merge branch 'master' into feature/injection
Set up to debug injection output.
Fix order of LD_IN0_7.

Should be backwards.
Allow command-line argument to change column #.

Also commented out the pixel sr output.