process: Add ability to write a CodedImageSource in pure Python

This gives me an easy gateway to write test image sources. I could do the
same with VideoSource and AudioSource.
FIX: v2i_add and v2i_subtract still wrong

Just can't get this simple arithmetic right. Story of my life.
gl: Allow NULL in_full_windows
gl: Split out general frame rendering to be shared

video_render_gl_frame can be shared with other routines that have odd
texture setups, such as the reconstruction filters.
gl: Add document explaining the default state of the GL

Future (with respect to 2.1) versions of GL do not support saving the GL
state, which is a bit of a relief to me, because it's hard to make sure the
right things are saved anyways. The alternative for us is to set a good set
of defaults, and always revert to them before the end of the function. This
document describes those defaults.
cprocess: Rewrite video_reconstruct_dv_gl with new routines

The previous version did not respect the target full_window at all, nor did
it calculate the correct current_window. I am now confident this routine
gets the frame offset correct.
scripts: Update encode_x264_mkv.py to include the X264 encoder params class
process: Don't fire up a context by default

Instead of doing this at module load, defer it until either the first video
rendering or when the user calls check_context_supported().

Because of the way GLEW works, this isn't foolproof. It's perfectly
possible to have two contexts with completely different capabilities in the
same process, and GLEW will only detect capabilities on one of them.
Eventually I'll switch to GLEW MX, which will fix that issue.
Indicate import errors dealing with basetypes

Really, all of the initialization functions need to be rewritten like this,
but this was needed to track down a specific import error.
Reduce the logging and printing we do in the Matroska writer