Unique Frame IDs and Check Media Enqueue

Since we could have multiple frames on a given page, this gives each
media "frame" or "view" its own unique ID.

Also adds a check to make sure `wp_enqueue_media` has only been called
once.

See: http://core.trac.wordpress.org/ticket/22843

This is fixed in WP 3.5.1 beta at the time of writing, but since this
library should play nice with the current major version we'll keep in
the check.