Extracted abstract implicit vals from Types.

These should be considered plumbing and not blended in with the
rest of the api.
Merge pull request #2142 from paulp/pr/move-implicit-tags

Extracted abstract implicit vals from Types.