Use PyBuffer_* API instead of ctypes

- a little more compact notation
- feels "more direct"
- should be equivalent performance-wise