Significant rewrite of the artwork selection and loading process

- Issue #4 - added surface objects for layouts.  Surfaces are
offscreen textures that other images, artworks, texts and surfaces
can be drawn on.  The surface itself is treated like any other image
and can have skew, pinch and shader effects applied.

- Issue #35 - removed the concept of a special "movie artwork".  Any
artwork or static image can now contain images or videos.  Videos are
given preference over images.

- Issue #37 - Added "video_flags" and "video_playing" properties to the
Image class for layout scripts.  Layouts can now test if a video is
playing, start or stop a video, and can set whether a video automatically
starts, loops, or plays its audio track.

- Multiple paths can now be specified for each artwork.  The paths are
checked in order for each rule (i.e. path#1 for romname, path#2 for
romname, path#1 for cloneof, path#2...)

- If an artwork path contains a subdirectory that matches a rule, then a
random video or image from that subdirectory is loaded (i.e. if path#1
contains a "pacman" subdirectory (but no pacman image or video), then a
random video or image from the subdirectory will be chosen if available.
Videos get preference.

- Fixed a bug that prevented image flipping from working when image/video
is scaled

- Added set_pos( x, y) and set_pos( x, y, w, h ) functions to the Image,
Text and ListBox classes used in layouts.