Introduce Typeable constraint on Prims (see #42)

Requires things wrapped in `Prim` to have a `Typeable` instance, making it possible to extract things out of a `Prim` wrapper if you know what type you want.  We may also want to provide some convenience methods for doing such extraction, but we can do that separately from this PR.