Fix compatibility for python 3.

- Add a new test runner using nose and coverage.

- Update syntax used for raising exceptions and miscellaneous other
  things.