Fix dirty checking for subsequent calls to taggable_on. Fixes #321.

It was discovered that the dirty module was not being called on tags within a context. I added the specs to detect the issue (and cleaned up others for single-assertion testing for better coverage).

It turns out that all of the include calls were happening *only* the first time `acts_as_taggable_on` was being called, and all subsequent calls ignored those includes, despite the context-specific actions that happen when those modules are included.

I'm not sure, but there may be other issues related to non-default contexts that may be resolved by this.

I'll go through and double check that each of these includes are required every time we add taggable types and notify you if any other changes need to be made before this is pulled in.