ENH: wrap_lib creates enum ports from function attributes

wrap_lib now checks for the presence of an attribute on functions
that matches the name of input parameters.  If a function has an
attribute that matches a function name, then that port is
transformed into an enum port with the options in the attribute.