Profiling and configurable negative timeouts

Reviewer: @wilmo119

The Python profiler is useful for tracking down performance problems in the tests, but I always forget how to run it. The first commit adds a --profile option to make it easy.

Next, we had several hardcoded timeouts for negative checks. We already had --default-timeout for positive checks, so add --default-negative-timeout.

Finally, add a test to make sure the value passed for --default-negative-timeout is good. For reference, the output from these tests with IVS:

latency.DataplaneLatency:
17:54:15.555  root      : DEBUG   : Minimum latency: 0.303030 ms
17:54:15.555  root      : DEBUG   : 90% latency: 0.370979 ms
17:54:15.555  root      : DEBUG   : Maximum latency: 2.733946 ms

latency.PktinLatency:
17:54:52.292  root      : DEBUG   : Minimum latency: 0.375986 ms
17:54:52.292  root      : DEBUG   : 90% latency: 2.200127 ms
17:54:52.292  root      : DEBUG   : Maximum latency: 3.214121 ms