Make get_put_monitor_eqc pass deterministically

 * Change check_state to be the optional invariant callback.
 * Just return true from postcondition since it was only used to check
   the state.
 * remove unneccessary `timer:sleep/1` calls
 * Poll for folsom stat changes instead of relying on timer:sleep. This will fix
   the test on slow machines such as the builders. It also makes the test
   run a lot faster as it no longer sleeps arbitrarily.
 * Move test initialization out of the initial_state callback
 * Log the metric that failed for invariants
 * Poll active stats during get and put fsm shutdown/exit since the
   count needs to be decremented
 * swap ordering of monitoring the pid and sending it a kill msg in
   `end_and_wait/2`