Enhance casting rule propagation
Maintain casting rules in a graph for auto propagation of casting rules when defining new types
Clean up
More cleanup
Merge branch 'master' into typesystem_refactor_2
Refactor and add docs
Revive comment for a potential problem

History:
- https://github.com/numba/numba/commit/05416b58195792a0f41b7ae350325729f268eb9d
- https://github.com/numba/numba/commit/a2edb6d5444fc8ed21c1b130f4c94e9f9c6536df
Add tests
Merge branch 'master' into typesystem_refactor_2
Clean up
Merge pull request #876 from sklam/typesystem_refactor_2

Maintain a graph of casting rules for automatic propagation of new rules