Add coding guidelines

These are the coding guidelines as updated from what originally was in
PyCogent. I took a pass through the document and updated where I saw fit,
however I know that people will like to add things that are currently not being
covered, so let me know and I'll add/change as needed.

The section that needs the most attention is the testing section. I updated it
but I know there might still be things that are missing as I'm not super
familiar with nose.

I've also added a minimal section about git that mainly points to other well
known and well written git guides.

Fixes #272
As long as all tests are run and found by `nostests`, `python foo/test_bar.py` and `foo.bar.test()` it doesn't matter if you use plain unittest or also depend on nose.
Note that there's a lot of overlap between unittest, nose and numpy.testing (nose extends unittest, nose.tools wraps unittest methods with more_pythonic_names and adds more assertion functions, and numpy also adds array-specific stuff).
See #269 for more information!