allow object creation from underlying C pointers

- add `underlying` property on both ctx and socket (name matches czmq). Returns the underlying `void *` as an int.
- add `shadow` class method on both ctx and socket (also from czmq), takes an integer or FFI pointer.