Nicely deal with case where a video is on amara but does not have subtitles yet
Updated docker dev settings to handle youtube syncing

The new system doesn't try to do HTTPS callbacks, which won't work for
dev.  It also adds support for a local settings file that we can use
to store youtube credentials.
Better behavior of drop-up menu when video is not on amara
Allow external accounts to be owned by users as well as teams
Added YouTube account model

YouTube accounts are special because we support multiple accounts for
a user/team.  We use the owner username to figure out which account to
user for a given video.

Fixed the resync view to work with the new code.  It now works with
both team and user accounts.
Added code to create youtube accounts

Copied the old youtube account code from the accountlinker app and
updated it based on youtube API changes.  In particular, now youtube
uses a channel ID to identify video owners instead of the youtube
username.

Created migration for the YouTubeAccount model.  Changed the fields a
bit to use channel IDs

Added utils.youtube module.  It's going to handle the YouTube API.
It's a standalone module since we want to use it in both the
externalsites app and the videos app (for the YouTube video type).

Changed the externalsites account form handling to work with youtube.
It's a bit different then the rest of the code since youtube uses
oauth instead of the user giving us their credentials.

Added some OAuth-related views to externalsites.

Added YOUTUBE_CLIENT_FORCE_HTTPS to settings.py and set the default to
True.  This seems much better than the old way of using getattr on the
settings module.
Updated code to get youtube video info

Changed it to use the new utils.youtube module.  Added
get_video_info() function to that module.  Made owner_username be the
channel id instead of the youtube username.  Added a migration to set
exsting usernames to NULL.

Refactored the code in the videos module that updates the
Video/VideoUrl objects based on the video type.  I think the new way
is cleaner and more consistent than the older way.  Before
set_values() would sometimes save the Video and sometimes not.  It
would also return the Video object back for basically no reason.

Removed the code to add the amara description to youtube videos.  I'm
going to replace that code with newer stuff and it makes sense to me
to do this when we're syncing.
Don't store access tokens in the DB

We are just going to have to refresh them before we do any operations
so it doesn't make sense to use the storage.

Added function to get new access tokens using the refresh token.
Refactored the utils.youtube module a touch.

Updated docker_dev_settings so that the default Site object is
hopefully correct now.
Added code to sync subtitles to youtube

This is mostly just ripped from the videos.types.youtube module.

Improved display of the account for the sync history page
Couple of performance improvements for the sync history tab

I noticed that we were doing several queries per history row, which is
never good.  Changed it so that we select the version when we select
the sync history objects and that we select all the accounts using 1
query per account type.  Lastly, removed the link to the version, it
required several queries and it didn't seem all that useful.
Fix youtube usernames for old VideoUrl objects.

Added a couple more fixes for unittests.

Fixed update_all_subtitles() to work with both team accounts and user
accounts.

Altered the code in the videos app to get the owner_username a bit.
Fixed YouTubeAccount.is_for_videourl()

Couple other fixes to externalaccounst.tests.models
Hook up the user profile page to the new youtube account code
Unittest fixes/changes

Changed the mock youtube.get_video_info() to always return the same
info rather than having a lookup table.  I think this way is cleaner
and we should just make the tests work with it.  If they need to test
something else, they can always patch get_video_info() a second time
to make it return a specific value.

Added mock for get_new_access_token.
Test fixes/improvements

After this I get all tests to pass, except for the webdriver_testing
app.

Fixed video types tests to work now that we don't strip url params
from the video URL.  Also changed the way we matched some video types.
I think this is a simpler and cleaner way to check the extension.
Removed the video_urls test which is only tested the URL stripping
feature feature.

Fixed comments tests after the latest changes.

Fixed team video feeds import tests.

Fixed merged dfxp test.

Fix for reset_mocks() in test_utils.  The previous code wasn't
resetting the child mocks.

Added the nose-exclude package which makes it easy to skip a
particular app's tests.  Added unittest2 package which allows
babelsubs tests to be run.

Added nosetests.xml to the gitignore file.

Fixed test_settings.py file.
Merge branch 'staging' into gh-1488

Conflicts:
	media/src/js/embedder/embedder.js
More unittest fixes

This fixes things after the various changes for the YoutubeVideoType
 - Fixed exception in matches_video_url()
 - Fixed test_set_values and video_title_test to work with the new
   system for mocking youtube info.
Added new code to handle amara credit on youtube

The one thing still not implemented is the actual YouTube API code to
handle this.

Added test factory for youtube.VideoInfo.

Made TeamVideoFactory call clear_team_video_cache() after it messed me
up multiple times when creating unittests.
Implemented the API to update youtube descriptions

Added unittests for the youtube code.

Updated the RequestMocker class a bit.
Added code to remove external accounts

Updated profile pages for removing accounts

Added code to revoke youtube auth tokens when we remove the account.