Fix error & formating argNames in pipecomponents

Re-format argNames dicts and fix a few parameter errors in
ColorCardDetector.

see
https://github.com/borevitzlab/timestreamlib/commit/193fd537f90cb6f33e47d8e5efcdd67feb6d0807#commitcomment-7824504
 Changes to be committed:
	modified:   timestream/manipulate/pipecomponents.py
Fix final formatting issues

Some weird indentation in pipecomponents, and remove a trailing slash
in the flake8 call in the travis config
Re-write run_tests, add flake8 to test suite
Add extra tests for non-None-ness in test_classes

Some weird errors are happening in tests, where the image, or
image.pixels, is None. So, we assert that both are not None so that
tests fail rather than error out.

 Changes to be committed:
	modified:   tests/test_classes.py
Filter logs in run_tests, remove nologcapture

We had nologcapture in ./run_tests as dependency modules had
ridiculously long logging messages. Now, we capture logs, but just keep
the ones from our module(s).

 Changes to be committed:
	modified:   run_tests
Generate Null pixmap when removing last list elem

* util/derandui.py (onClickTimeStreamList, showImage): We remove image from
scene by creating a pixmap of size 0,0.
Add the combobox in the second column.

* util/derandui.py (DerandomizeGUI.__init__): Initialize QComboBox_CSV and place
it in (0,1)
(DerandomizeGUI.selectCsv): Call fill method so first column gets filled.
(QComboBox_CSV): New class that will hold item(0,1).
(QComboBox_CSV.fill): Read a specified column and put it in column 1
Remove Combo Box specific classes.

The two first columns are interelated to the point where it makes sense to have
them together under the same class.
* util/derandui.py (Firsttwocolumns): New class holding logic to manage the
relation between the first two columns.
Improve internal consistency in FirstTwoColumns

* util/derandui.py (refreshCol{0,1}): New names for onChange methods. They
reflect the fact that the column is actually being changed. Also, we make sure
that we catch ignore index=-1.
(__init__): Add some class documentation.
Add swapRow method.

* util/derandui.py (swapRow): New method that will swap two row numbers. It will
swap all the columns except 0
Reorder Col1 based on Col0

* util/derandui.py (FirstTwoColums.E): String "--empty--" to put in empty rows
to identify them
(FirstTwoColums._num0Rows): Number of rows for column 0. This is different from
the number of rows in the table.
(refreshCol{0,1}Header): Use method setCurrentIndex to initiate refreshCol{0,1}
calls.
(refreshCol1): Skip the empty rows when copying to column 1
(colsRebind): This will refresh the relation between col0 and col1. Col0 will
not be reorder, but col1 will be reordered (together with the rest of the
columns 2...end) to have a 1-to-1 relation with col0. If we find no relation we
insert an empty row.
(swapRow): By default we fill the cell with (" ")
Stop ignoring the first 2 columns of csv file

* util/derandui.py (selectCsv): Adjust the csv index by 2
Check combo box size before continuing

* util/derandui.py (colsRebind): We don't continue if there are no actions in
any of the comboboxes.
Define the colsRebind range with self._num0Rows

* util/derandui.py (colsRebind): We traverse all the elements in col0
Explicitly call refreshCol0 when removing col0

* util/derandui.py (refreshCol0Header): Subject
Change csv class name to BindingTable

* util/derandui.py (BindingTable): New name for the FirstTowColumns class.
Expresses better what the class does.
Handle when the user hits cancel on csv file.

* util/derandui.py (selectCsv): Subject
Remove self._csvfilename

* util/derandui.py (selectCsv): Its a temporary variable. No need to make a
instance var.
Rebind the csv table after we remove TS.

* util/derandui.py (removeEmpties): New method that removes empty rows created
by the script.
(colsRebind): Activate rebind when col0 is empty but co1 still contains the csv
information.
selectCsv is now in BindingTable.

* util/derandui.py (selectCsv): Subject