Add support for None is [not] None
Add optional type returning
Add test
Refactor `is` and `is not` to handle all types
Refactor the compiler pipeline
Interpreter mode fallback
Merge branch 'master' into better_fallback

Conflicts:
	numba/compiler.py
Fix missing lines from merge and cleanups
Split Dummy type to Phantom and Opaque
Ad-hoc fix for ambiguous type overloading
Ignore unrecognized intrinsic
Fix return type seeding.
- Introduce implicit cast ir node
Add test for invalid return type forcing
Use asymmetric resolution to resolve function call if we have mulitple possible candidates
Add failure in ByteCode() to be considered for fallback
Make unittest_support unset INTERPRETER_MODE at import time and warn if it is already set
Avoid this assertion from failing when tracing
Merge branch 'master' into better_fallback

Conflicts:
	numba/_dispatcher.c
Fix _MinimalResult pickling for expected failures
Add decorator to allow interpreter_mode to turn for a test function