An alternate StringToken with support for nested types and strongly typed parameters

The tests should indicate the new functionality, but it removes the need to have each class inherit from StringToken. I don't know the full implications of this but it seems to be easier from a management point of view.
We also embed all localizations in a partial class so that's its easily discoverable. This is the reason the namespace type should use the declared type hierarchy instead of just the current type.