Updates to type-checking and error handling

Fixed error messages not conforming to standard Lua error notation
Constructors now properly check to see if a valid definition has been provided and throw an error if this is not the case when called
Removed test/unimplementedmetamethod.lua