allow pointer math using OpaquePointer type

We will now see the memory address a OpaquePointer is about when calling
its .gist, it is also now round-trippable by calling .perl and EVAL.
Also, it will return the memory address when being used as a number, so
that we can walk the bytes of a CStr or obtain addresses of Ctsructs in
a list when we know their size.
add tests for new OpaquePointer methods

These tests pass on all three backends, though a most recent rakudo is required.
Merge pull request #44 from FROGGS/pointer-math

allow pointer math using OpaquePointer type