Performance improvements to python avro reader

* Added precomputed fingerprint to the schema
* Precompute schema resolution info and cache it
* Cythoned the reader code
had to fix some tab/spaces issues for cython