Initial support for a docker development environment

To test out:

  cd docker-dev-environment
  ./build-images.sh
  ./services.py start
  ./manage.py syncdb --all
  ./runserver.py
Fixed a couple settings and added celery worker script
Added basic support for testing with docker.

Added settings file for testing with docker.

Added some extra modules needed to test to our Dockerfile.

Fixed apps.videos.share_utils to not access the DB during module
initialization.

Added test script.  Added support for using different settings files
in manage.py

Added script to reset the docker network.  I'm not sure why this is
happening, but I keep needing to do this.
Use the shell to find docker
Added signal for when a languages public tip changes

This is going to be used for the new syncing system.  Instead of
forcing the video/subtitles apps to call into the syncing code, they
will just emit this signal and the syncing code will connect to it.
Added decorator for team settings pages
Added form to link a team with a kaltura account

Made a new app called externalsites.  It's going to be the new way to
handle syncing and related tasks.  It should replace the accountlinker
app.

Put the view code in externalsites for the teams accounts tab.  I
think it's better to add code to the new app rather than jamming more
stuff in the teams module.

Did some work to make it easy to add account forms for other sites as
we need them.
Some fixes for video types and kaltura

Added the VIDEO_TYPE_KALTURA constant.  Made the video type registrar
use a list rather than a dict to check types.  This ensures that we
will check them in the order they are registered.
Started work on syncing subtitles to external sites

Listen to various signals and call a task when they fire.  The actual
tasks are still to be implemented.

Added some code to generalize account models.  Right now we just have
KalturaAccount, but as we add more we need a way to reference objects
from different model classes.  Implemented the simplest system to do
this, we use a type value and the object id.  Changed KalturaAccount
slightly so that we have an object id.
Added code to manage the syncing process

Added models to track the history of syncing a language and the
currently synced version (if any).  Added some basic error handling
for failed syncs.

Moved the signal handling code to urls.py from models.py.

Changed the test framework to mock the code that actually syncs stuff
rather than the code from tasks.py

Still haven't added the actuall syncing code, that's next.
Implemented kaltura syncing code
Added migrations for externalsites

Slight tweak to the get_anonymous user method.  We don't have an
anonymous user for the docker dev environment, but that's okay because
it's only used by videos.models.SubtitleVersion which we aren't using
anymore.
Fixed import error in the old syncing code
New way to ensure that our signalhandlers are importted correctly

The old way wasn't working when running runserver.  There doesn't seem
to be a great way, but this one seems the cleanest of the options.
Call signal tasks using delay()
Checking in template
Added manager method to get the sync history for a language.

Fixed the SyncHistoryManage.create* methods to return the created
objects.
Added some error checking to the kaltura code
Send subs to kaltura using SRT format

Added a unittest for this.

Removed leftover code from the ExternalAccount base class.
Added some type checking to the signal receivers.