Applied 2to3 to convert the codebase to Python3 in a 2.6 and 2.7 compatible way.

To achieve 2.6/7 compatibility some fixers were excluded. Notably, `print` as
many test cases are built using docstring and relying on the particular output
of print.

2to3 -f except -f exec -f execfile -f exitfunc -f has_key \
     -f idioms -f import -f isinstance -f  numliterals -f next \
     -f raise -f renames -f sys_exc -w -n .
Print statement to function in code not transformed by 2to3
Fixed C code for correct compilation on Python 3
Defined PY3 constant (True if Python 3.X) in Numba root
Conditional execution to iron Python 2 and 3 differences

In Python3:
- divide is the same as true_divide (removed)
- long and xrange do not exist (removed)
- UnboundMethodType do not existe (replaced by FunctionType, which is already in the list). Check!
Rewrote 2to3 fixes to keep only needed ones

Instead of defining the fixes to use as all fixes except the
bad ones, the list has been changed to indicate only the ones
to use. In this way, knowing what to change to get a codebase
compatible with Python 2 and 3 should be easier.
amend setup.py
Changed function attributes func_X to __X__ for code an globals

Python 2.6 and 2.7, has an alias to the 3.X version.

90 Tests in total.
Python 2.7:  1/90 FAILED (Theano not installed)
Python 3.2: 72/90 FAILED
int and list are not comparable
Fix difference in scoping rule of List comprehensions

90 Tests in total.
Python 2.7:  1/90 FAILED (Theano not installed)
Python 3.2: 71/90 FAILED
Python 2.x reduce builtin can be imported from functools in Python 2.x and 3.x
Remove repr fixer and replaced backtick by repr
Changed function attributes func_name to __name__

90 Tests in total.
Python 2.7:  1/90 FAILED (Theano not installed)
Python 3.2: 70/90 FAILED
Pretty print of test results in Python 3
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
Fixed uncomparable types bug

90 Tests in total.
Python 2.7:  6/90 FAILED (Theano not installed)
Python 3.2: 30/90 FAILED
Ugly hack to deal with doctests

A wrapper for autojit is defined in the test_support module named autojit_py3doc.
This function rewrites the documentation of the function to remove the long literal
indicator (e.g. 4L -> 4) and fully qualified Exceptions named (NumbaError -> numba.errors.NumbaError)

90 Tests in total.
Python 2.7:  7/90 FAILED
Python 3.2: 27/90 FAILED
Python 3 compatibility in some tests
Fixes for switch PyInt_FromString/PyLong_FromString usage in Python 2 and 3
Fix for test in Python 2.x