WIP: Start numeric type for resources

Opening for comments on this approach. Not functional yet.
Good point - Go convention for value type conversions is usually a noun, `String()`, `Error()`, on an interface which is a verb - this is almost a value type conversion.  If you declared an interface for this and used it in resource processing we'd call the interface `Canonicalize` and then the method `Canonical` should fit.