COMMON: Move TransparentSurface to common code

This pull request moves several files from Wintermute engine to graphics/ and common/. Originally these files come from Broken Sword 2.5.

New stuff in common with this patch:
o TransparentSurface with scaling and rotation
o TransformStruct for point/rect transformations
o Rect32 in common/ for 32-bit rectangles
o FloatPoint in common/ for float precision points

Both Wintermute and Broken Sword 2.5 got adapted to use this common code, however there are still few glitches related to this code in BS25 as I had to switch to different PixelFormat.

Next steps:
1. Fix remaining glitches in BS25 (could be done in-tree)
2. Start using of these in Full Pipe engine
3. Eventually I will be using them in GUI as well
4. Make it properly work with PixelFormats, currently it is all hardcoded

There is no intent to support anything beyond 8888 as internal format, but I could consider using autoconverting of arbitrary format input Surface.

This patch overrides #458 and uses it (with bugfixes and formatting fixes) as its first commit
If I might humbly suggest to move AlphaType outside the TransparentSurface namespace into Graphics::, as Graphics::TransparentSurface::ALPHA_OPAQUE is quite a mouthfull to type out.