made TypeUtility public

Plus some other small changes.

I'd like to reuse `TypeUtility` in https://github.com/xbehave/xbehave.net.

Each commit has a very distinct purpose. If not all of them are desirable, let me know which ones (if any) and I'll resend with just the ones you want.