Changes for Python 3 compatibility

- Handle ast.arg in Python 3
- Changed map() to list comprehension (yield a list in Python 2.6+ and 3.x)
- bytes vs string when generating code
- Use PyCapsule instead of PyObject to address the multiarray_api
- Changed string_constants dict to store by (module.id, const_str)
  (llvm module is not hashable)

90 Tests in total.
Python 2.7:  6/90 FAILED (Theano not installed)
Python 3.2: 31/90 FAILED