This commit also adds a built-in `typeOf` function to every PocomathInstance.
It also adds a notation (prefix '!') for "eager" templeates that
instantiate themselves for all types immediately upon definition.
These are exactly the types that might match before the given type, and
hence which require to have their template instantiations defined when
an instantiation with the given type is made.
The stubs are so far all no-ops so basically at the moment the only
allowed template parameter 'T' is just a synonym for 'any'. But at least
this allows us to put the definition of the generic `subtract` into
the exact form we actually want to support.