Convert source file with main() to freeserf.cc

It is generally needed for the source file containing main() to be a C++ file
even if other files are plain C. This change thus makes it possible for
other files to be migrated to C++ as needed.
freeserf.cc: Indent to C++ coding style
freeserf.cc: Convert casts to C++ style casts
Merge pull request #160 from jonls/main-c++

Convert freeserf.c to C++ style file
pathfinder: Change to C++ file
pathfinder: Use STL implementation of list and heap
pathfinder: Use C++ style casts
Merge branch 'pathfinder-c++'

Convert pathfinder to C++.
Update README.md and HACKING.md

Move HACKING to HACKING.md.
Add notes on audio in README.
Add notes on coding style, Git workflow, dependencies in HACKING.
gfx: Move SDL initialization to gfx_init(), gfx_deinit()
gfx: Add higher-level sprite drawing functions

Add sprite drawing functions for all sprite
types in gfx, and use these functions throughout
the source code.
gfx: Wrap underlying SDL rectangle drawing functions

Use gfx_draw_rect() and gfx_fill_rect() throughout
the source code.
gfx: Add frame drawing functions
gfx: Add screen resolution functions
sdl-video: Remove unused masked sprite cache parameter

This was previously used to locally cache masked sprites in viewport. This
is no longer used since the introduction of viewport landscape prerendering.
Merge branch 'gfx-wrap-sdl'

Merge changes that wraps SDL rendering and screen functions in gfx.c. After
this change only gfx.c and freeserf.cc make calls to SDL.

This is based on the gfx functions proposed by Wdigger in #161.
Fix bug where cursor could be freed more than once
Move sprite_t to dos_sprite_t
Add Travis CI configuration file
README: Add build status from Travis CI