Changes to the Python wrapper

Here are a number of minor changes I've made to the Python wrapper over the past few years. I've recently rebased against today's master branch, and verified that the changes are working.

Changes:
- Fix link error on OS X
- Prevent invalid `*Ptr` classes from being created from Python by accident
- Gracefully handle non-standard depth/video modes, and handle 10-bit IR mode properly
- .gitignore/.gitattributes changes for happier development
- Build wrapper with Cython 0.20 to pick up the latest Cython fixes