Autokill

- includes changes made from pull request `locked`
- Adds two new fields to simulators:
 - **count_total** -- total count that simulator will reach before it stops counting
 - **reset_interval** -- time before it will reset. The simulator will not perform a reset if total_count has not been reached. A reset does **not** reset the current state of count (so if the simulator stopped counting at "5", it will begin counting again at "6" after a reset)
  - if **reset_interval** < 0, the simulator will never reset (will be stopped indefinitely)

**Why these are needed**
They will allow us to create simulators where we know *exactly* how many signals they will send out before they kill themselves. This is vitally important to qualifications, as we should now know exactly how many signals we will receive.

It also has potential uses in the lab environment (I can think of several)

**simulator_mixin.py**
- reformated simulators to use a mixin file