Create FindSDL2*.cmake files; Remove PkgConfig usage
Merge pull request #1075 from dorkster/cmake

Create FindSDL2*.cmake files; Remove PkgConfig usage
Rename SDLRenderDevice to SDLSoftwareRenderDevice
Add command-line flags to README.engine
Merge pull request #1076 from dorkster/renderer

 Rename SDLRenderDevice to SDLRenderDeviceSW
Merge remote-tracking branch 'upstream/master'

Conflicts:
	CMakeLists.txt
	src/RenderDevice.h
	src/RenderDeviceList.cpp
Rename SDL2RenderDevice to SDLHardwareRenderDevice

Use this render device with `--renderer=sdl_hardware`
Don't floor() values that we cast to int

Doing so was a pointless step, since casting floats to ints implicitly
"floors" them.
Merge pull request #1078 from dorkster/fixes

Don't floor() values that we cast to int
Merge remote-tracking branch 'upstream/master'
Fix problems building with CodeBlocks/MinGW

- Fix searching for SDL2main
- Include cstring in MapCollision.cpp for memset()
- Include stdio.h in RenderDevice.cpp for fprintf()
Merge pull request #1080 from dorkster/windows

Fix problems building with CodeBlocks/MinGW
Merge remote-tracking branch 'upstream/master'
Move Image-specific functions from RenderDevice to Image class
Don't use "Surface" in RenderDevice function names

The following changes have been made:
Image::scaleSurface() -> Image::resize()
RenderDevice::loadGraphicSurface() -> RenderDevice::loadImage()
RenderDevice::createAlphaSurface() -> RenderDevice::createImage()
Rename Renderable's "sprite" variable to "image"
Merge pull request #1081 from dorkster/renderdevice

More RenderDevice fixes
Create a new Image when using resize()

This fixes a bug where cached images were being resized. The place
I noticed this was when turning on "scale_gfx" in cutscenes/credits.txt.
Since we use the Flare logo on both the title screen and the default
credits, the image was resized on the title screen after viewing the
credits.
Smoother movement around 1x1 objects/entities

When automatically maneuvering around 1x1 tiles, we were moving the
player to the outer edge of the tile instanly. This was jarring when the
size of the player's steps were smaller than that distance. This patch
makes it so that we approach that outer edge, but maintain our current
speed. The end result is much smoother movment around 1x1 objects.
Isometric rendering: Reduce safety margin around screen to correct values.

This may be a leftover from the static background rendering, which
has redrawn the background just from time to time, not every frame.



        --------------------------
        |                        |
      . |                        |
     / \|                        |
    <   |>     You can see this  |
     \ /|                        |
      v |                        |
        |                        |
      . --------------------------
     / \
      |
      |
      You still need to draw these, which are mostly off screen.

      To be really safe, you need to find the largest tile of the tile set
      and do the math for that. For simplicity reasons we will treat all
      tiles as if they are as large as the largest tile.

This addresses #1084 and brings down the number of render calls down
to 1300 (2500 before) for a 640x480 window and the grassland tile set.