Improve code formatting.
Use a SDL_Surface* instead of a surface.

The management of the surface is done in this class, this will probably
conflict with the surface management in the surface class.
Initialise a member in the initialiser list.
Remove the keep_surface parameter.

Whether or not the surface should be kept depends on the access mode of
the texture. It is possible to update a static image, but that is not
intended to be used, so remove the part of the API that makes it easier
to do.
Improve exception path.

When the exception is thrown from the body of the constructor the
destructor is called, so no need to manage the lifetime of the
source_surface_ before throwing an exception.
Check the result of SDL_UpdateTexture.
Change order of parameters in constructor.

The order of the access mode is now more consistent with the other
constructor.
Improve documentation.
Change destruction order.

The order now is the reverse of the construction, probably doesn't
matter, but feels more like the normal constructor/destructor
creation/destruction order.
Merge branch 'SDL_Texture_polishing'

Various minor changes polishing the image load code for textures.