Implement parsing and conversion of generalized where clauses

Going to tentatively open a PR before I move on to other things tonight. I think everything should be good minus a failing test case for region bounds (gonna push that now, i.e 'a : 'b). r? @nikomatsakis 
It'd be a good idea to make a pretty-printer test for these cases. I hate doing it, but I've found when I don't the pretty printer pretty quickly diverges... you can do that by editing/creating `src/test/pretty/where-clauses.rs`, tagging it with `// pp-exact`, and then making a file that looks exactly like the text the pretty printer should output.