datapaths: Use FlowTable, not SwitchFlowTable

The SwitchFlowTable subclass was removed by a previous commit as its
functionality has been moved to SoftwareSwitchBase itself. This commit
actually adjusts SoftwareSwitchBase to use the FlowTable superclass.
tests: Moved SwitchFlowTableTest to switch_test

flow_table_test.SwitchFlowTableTest is now tested under the name of
switch_test.ProcessFlowModTest. This is due to the moving of the method
process_flow_mod from flow_table to switch, making it previously
incompatible with the unit tests.

Since the unit tests are under the switches instead, the tests are
modified to do the same as the other tests, using a mock controller to
send across flow mod messages rather than directly process them as done
beforehand.
flow_table: Fix bug on removing expired entries

The current implementation would just automatically make now equal to
the current time, even if some value was passed in. Normally this would
not matter because the entry is likely to be used without setting the
now value, but the unit tests caught this problem after attempting to
do so.
datapaths: Refactor/rewrite flow mod handling

This is an attempt to split the previously clutter _process_flow_mod
into multiple pieces, in order to reduce duplicated code and improve
flexibility for future possible flow mod messages. Some method names
were changed to keep it separate from that of others with the same
prefix originally. The parameter strict is now made an argument passed
to modification and deletion flow mod handling to reduce checking of
the command type.