Initial import of the Media Explorer Instagram service.

Importing the Instagram code for Media Explorer that was running in a sandbox.
Adding support for automatically rendering a page.

Added support for automatically rendering a service page when it is opened. This can be done by a service by passing the `fetchOnRender` = true property when registering a tab.
Adding barebone filter for defining MEXP Instagram Creds.

Added the a barebones filter definition for defining the `access_token` using the `mexp_instagram_credentials` filter.
Fixing undefined MEXP_Instagram_Service class variables.

Fixes a couple of undefined variable errors that can cause AJAX requests to fail.
Removing a8c from Instagram media explorer text.

The Instagram title text in the Media Explorer pane had "a8c" in it. Removing this in anticipation of making this public.
Removing direct dependance on Keyring plugin.

Keyring was being used inside the Instagram service to manage user credentials for pulling in user-specific content. I'm removing this direct dependancy and instead implementing this as the filter `mexp_instagram_user_credentials`.

Added the mexp-keyring-user-creds.php plugin which uses the `mexp_instagram_user_credentials` to import Keyring credentials. At the moment this plugin uses a version of Keyring available only on WP.com, however it can fallback to the released one if need be.

Needs testing on wp.com.

See: http://wordpress.org/plugins/keyring/
Fixed a bug in the Instagram service when there is not a caption.

Not all instagram pictures have captions on them, so we must check that there is a caption before trying to access it or we get PHP warnings that bugger up the JSON parsing.

Also fixed the output so that when there is a caption "user: caption" is displayed under the picture, but when there is not then just "user" is displayed (no colon).
Added proper error messages for when Instagram has no access token.

When the Instagram service has no access credential the user is displayed
an `oAuth connection to Instragram not found` message.
Fixed incorrect pagination.

Previously it was incorrectly assumed that the last id in the list would
be the `max_id` for the next query. This works for recent posts, however
for the `tags/xxx/media/recent` query this is not neccesarily true.

Instead, all Instagram endpoints return a pagination object with this
information. This change uses that information in setting `max_id` and
`min_id`.

Tags endpoint: http://instagram.com/developer/endpoints/tags/#
Pagination info: http://instagram.com/developer/endpoints/#
Cleaning up some of the Instagram code.

Adding `if` braces and cleaning up commenting style.
Removing unnecessary Google maps url from Instagram.
Cleaning up Instagram URL generation.
Added better checking for empty Instagram pagination.

If Instagram douesn't have pagination info then there is still a
pagination property in the reply, but it has no properties inside of it.
Added better checking so that we don't get PHP warnings when there is no
pagination info.
Fixed incorrect reference to response data when getting user id.

0b38e2a introduced a breaking change with the format in which
`do_request()` returns data in the Instagram service. The `get_user_id()`
function never got updated with this change so it would error out when
called.
Merge pull request #50 from Mobius5150/master

Instagram integration