Terminology: userdata -> usertype

This pull request proposes alternative naming for the `userdata` and `new_userdata` idioms, adopting the term `usertype`. `usertype` more appropriately encapsulates what we mean, while having enough of the same parts (`user`) to, in the API end-user's mind, be similar to lua's concept of `usertype`.

This also makes it easier to have an actual `userdata<T>` class that _actually_ represents a userdata, and we can convey semantics (`userdata<T>` versus `userdata<T&>` versus `userdata<T*>` through `pusher` and `getter`, as the `unqualified<userdata<T&>>` won't affect the inner specified class.