Allow Snitcher to be mixed into classes

This branch is built on top of https://github.com/gaffneyc/snitcher/pull/2 so that should be merged first.

This also addresses https://github.com/gaffneyc/snitcher/pull/1 without locking your class down to a specific snitch.