Class: add typeId method
bytecode compiler: support pattern matching

To make this work, add support in the bytecode for storing
integers instead of pointers in registers. In the future,
this could be extended to ehval_p in general to support
unboxed integers and other primitive values like null and
booleans.
ByteArray: add operator==
tests: fix some test failures
pointer: make a null pointer indicate an error value instead of an EH null value

Likely going to use this to implement exceptions.
Makefile: don't warn when using register

SWIG and Bison code is full of it.
bytecode compiler: support try-catch and try-finally