cleaned up the state machine somewhat. All transition functions have a common intervace taking 1. A message and 2. The TVPN instance with the required backend modules. Also renamed the InitState function so I don't have a const InitState, a func InitState, and a func initState. Still a bit confusing, but better.