(PUP-1799) Remove support for ruby types

The param specifications used to allow using the ruby types in addition
to strings specifying the puppet types. This made it hard to explain the
API as well as probably would lead to some surprises since the
translation from the ruby types to the puppet types is not always the
most straightforward.

In order to just side step all of those problems, this simply removes
that support.

In addition it pulls out the construction of the type parser so that it
is held on to for the entire function creation.