Resolve issue #29 (OS X Support), make many tests pass, add linalg.norm and linalg.scale

- Use otool to get the "SONAME" in utils.py
- Added _types class to cublas.py and cufft.py to more carefully
  dispatch handle and stream types.  (The previous version was
  using ints for pointers and this was causing problems.)

- Some tests fail because blas operations define magnitude as
  abs(x.real) + abs(x.imag) rather than abs(x)
- Some tests fail because np.allclose is too restrictive for single
  precision.
- Give setUp() a seed so tests can be reproduced.

- Use misc.init() for autoinit (no cublasInit()).
- Addressed part of issue #36.

- pycuda header should simply be #include <pycuda-complex.hpp>

- added linalg.norm() and linalg.scale()