Fix for #92 - Make DataTokens and defaults readonly

The properties on TemplateRoute for DataTokens and Defaults are now
readonly. This prevents modifying these collections in a way that
invalidates cached data, or violates thread-safety.

The next change will do the same for Constraints, which is a more
substantial refactor.
Can now be `IReadOnlyDictionary` right?