move some register functions to c extension.

Not sure how the load path works, so I just used the 'require_relative' with tons of '..'s
ignore linux shared libraries
use native C types
define Register#== in C
Register attr_accessors now in C
Register.initialize is now defined in C

This means that register is now completely C and many references must be updated(.