make the python buffer struct immutable

Only immutable types have C-ABI compatability in Julia.
Here we make the Py_buffer struct immutable and wrap it with PyBuffer
so we can attach a finalizer for auto memory management.  This will enable
us to reuse the Py_buffer struct for the Julia -> Python buffer
implementation.
numpy's frombuffer does not seem to preserve shape / stride information of the original buffer.  Calling asarray preserves this information.