Adding starting direction parameter to map:addNPC

Characters can now start with a specified starting direction instead of
the default behavior of facing downward.

Adding this functionality required fixing a bug in which, on the
initialization of an Actor's spritesheet, a frame is actually not
defined and the first frame in the spritesheet is used instead. Until
the Actor was given an order to stand or move, the direction (and
therefore the sprite used) was never properly initialized.

Also added support for bubbling enums up to the Lua scripts from the
script engine. For EDEn scripts, enums will simply be tables. The macro
added to ScriptEngine.cpp (REGISTER_LUA_ENUM_VALUE) is a modified form
of the approach recommended on the [Lua Users
wiki](http://lua-users.org/wiki/BindingEnumsToLua). This does mean that
enums are not read-only, so we will want to revisit that and prevent
modification of enum values from the scripts in the future.
Something else I'm concerned about in this approach is the need to
repeat the enum values in two places: once when declaring the enum in
C++ and once when exposing the enum to Lua. If a developer adds new
values to the C++ enum, there is no way to ensure that the Lua enum
table will also get updated. This will need to be addressed in the
future as more enums get exposed to the Lua scripts.