Preliminary work for opt-in builtin types

Moves the vast majority of builtin bound checking out of type contents and into the trait system.

This is a preliminary step for a lot of follow-on work:

- opt-in builtin types, obviously
- generalized where clauses, because TypeContents has this notion that a type parameter has a single set of builtin kinds, but with where clauses it depends on context
- generalized coherence, because this adds support for recursive trait selection

Unfortunately I wasn't able to completely remove Type Contents from the front-end checking in this PR. It's still used by EUV to decide what gets moved and what doesn't.

r? @pcwalton 
On Tue, Sep 23, 2014 at 09:56:30AM -0700, Patrick Walton wrote:
> Have you measured perf with this?

I see an approx 5% improvement from caching on an optimized built with
--no-trans.  There is probably more work that can be done in this
area. Method caching will help a lot. I also haven't re-measured that
90% figure since rebasing and so on -- I should double check it still
holds.