- removed is_reachable() and added several safety checks
- removed member type from state structure and replaced this functionality
  with tm::accept and tm::reject
- changed tm_add_state to satisfy specific tm-logical rules