librustc: WIP for write barriers

*This is a preliminary review only—do not pull!*

r? @nikomatsakis. I'd like to know whether you feel this is on the right track. This includes the dynamic component to the `@mut` → `&imm` borrow only and not the write barriers. I'd like to get your opinion as to the best way to implement the write barriers—another pass that uses `mem_categorization` perhaps?