StringIO Compatible GSE2 Support

This pull request makes GSE2 compatible to `StringIO` and avoids converting file pointers from Python to C.

* `StringIO` support
* Simplifies GSE2 access quite a bit
* Pure and more robust python read header function
* Minimal change to C-code by use of function pointers / callbacks
* Avoids all access to `buf.c` thus, one file less to compile
* Python3 cannot handle file pointers as nicely as Python2. With this approach the support will be much easier