Allow returning Handles to void* from C.

If they're NULL, the value sent to JavaScript will be null. If they're
non-NULL, the value sent to JavaScript will be the handle.
Fix bugs in Module.commit and HandleList.getHandle

getHandle was never being called previously, but now we send Handle
values from C to JavaScript.
Add asserts to getField/setField/mallocType

These catch dumb errors like forgetting arguments, or screwing up arg
order.
Fix order of isInt/isSigned in makePrimitiveType.
Give better errors when overloadMatches_ fails.

Now there should never be a case where overloadMatches fails but there
was no exception thrown. As a result, there should always be useful
information about why a particular function overload was not chosen.
Fix bug in StructField when adding sub-fields.

Type is never an instance of StructTypeData, but type.data could be.