Remove unnecessary define

CHECK_ARG_TYPE is a bit superfluous now that it's much easier to
ThrowTypeError, so no need to clutter up the header.
Change word order on define

This word order makes more sense to me. Also added not totally necessary
() to the end. Feels better looking like a function.
Modify how values are returned

For now I removed the ability to set the return value early. Honestly
just can't figure out a good name for it. When I can figure out a good
name I'll add it back in.

Also modified the names for returning a value immediately and added
empty string and null options. Undefined seems unnecessary.