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
Fix #908: allow lazy-compiling from several threads at once (compilation is serialized)
Remove indirection, and add comment about why the signature may already have been compiled for
Add basic tests for non-reentrant locks
Merge pull request #876 from sklam/typesystem_refactor_2

Maintain a graph of casting rules for automatic propagation of new rules
Merge branch 'master' of github.com:numba/numba into fix908
Merge pull request #910 from pitrou/fix908

Fix #908: allow lazy-compiling from several threads at once
[WIP] Sketch of array-in-record-type impl
[WIP] Tidying up
[WIP] Tidying up
[WIP] Tidying up
[WIP] Tidying