Imported SplashScreen and SurfaceManager

SplashScreen has been gutted, but it still works as expected.
SurfaceManager is non-standard, since it now uses it's own internal static
singleton instance rather than relying on an external template. This is so
tht I can create the various button surfaces at runtime from a single
button bitmap. This is a better use for SurfaceManager than it's original
design.