Make media functions take precedence over oembed

If a service's map declares an explicit media function for some type, it now
takes precedence over the type's media URL or oembed objects. This makes more
sense as a heirarchy and allows us to use media functions on objects with
oembeds. We can also do crazy things like present a Singly URL in an oembed
field, which we may have to do to provide access to original-resolution
images out of Shutterfly.

The order is now: 1. Media function from `exports.media[type]` 2. Media URL
from `exports.type[media]` 3. Oembed `url` (photos only) 4. Oembed
`thumbnail_url`

The only use of a media function so far is `media.contact` in
`gcontacts/map`, which defines neither a `contact.media` nor an
`oembed.thumbnail_url`, so nothing should be impacted.

@quartzjer, @beaugunderson - you two last touched this code. Sanity check?