Throw when trying to dereference disposed objects, etc

This attempts to make tonic more likely to throw a Dart exception than crash when exposed to bad input.

Change-Id: I3234426b0a08925fc9b17d5e3fcc750e66445cad
6 files changed