type: string handel etch cases (null ptr + null byte)
ffi: in some cases the types have not rw_strategy

In case a type object has no set rw_strategy raise NotImplementedError
until the real reason is fix.
ffi: move {get,put}_bytes + get_string to AbstractMemory

get_bytes, put_bytes and get_string must also defined on FFI::Buffer, move
them from FFI::Pointer to FFI::AbstractMemory.

All methods supports now offsets and have improved error handling.
ffi: WIP FFI::Buffer implementation
ffi: make AbstractMemory.put_bytes RPython compatible
ffi: AbstractMemory mostly enough