Try to keep a constant game speed when rendering can't keep up

Fixes #985

This should handle 99.9% of slow-down, where logic would happen slower in
realtime. The 0.1% of cases where slow-down can still happen is when the
time for a frame to complete goes over a certain threshold (e.g. frames
where we load game data; this is explained more in the source comments).
Remove frame-skipping threshold

Instead of using a threshold, we explicitly say when frames are expected
to be slow (aka loading frames). We total these frames into GameState's
load_counter, and then ignore frame-skipping until that counter reaches
0 again.
Simplify checkNPCInteraction and improve MenuManager's closeAll()

A lot of the code in GameStatePlay::checkNPCInteraction() was from when
I added a Trader button to MenuTalker. That button has since been
replaced with the more flexible MenuNPCActions, so the code is not
needed anymore.

As for MenuManager, I changed closeAll() (including closeLeft() and
closeRight()) to work even when we're dragging something. Now, the
behavior is to return whatever we were dragging and *then* close the
menu(s). This should prevent dragging things when they shouldn't be
dragged.
Remove usage of menus/menus.txt

Position/alignment is now in the config files for each individual menu.
Add toPoint() and toRect() to file parsing utility functions
Use utility functions to simplify parsing menu config files
Allow position configuration for MenuNPCActions

Fixes #996
Rename some instances of update() in menus to alignElements()

update() implies that the function can be called multiple times (usually
every frame). In contrast, alignElements() is typically called just once
after a call to align().
Remove menus/menus.txt from default mod
Merge pull request #998 from dorkster/menus

Simplify checkNPCInteraction and improve MenuManager's closeAll()
Merge pull request #999 from dorkster/menu_refactor

Remove the usage of menus/menus.txt
Merge pull request #986 from dorkster/fps

Try to keep a constant game speed when rendering can't keep up
Don't require separartor to be appended for eatFirst* to work

Previously, if we ran eatFirstInt() 2 times on the string "1,2", we'd
get:

1
0

Now we should get:

1
2

As expected. This means we don't need to append a separator to a string
before parsing it.
Clean up usage of eatFirstInt and eatFirstString
Implement toRGB and toRGBA for color parsing
Rename "eat" functions to "pop" functions
Merge pull request #1001 from dorkster/parse_tools

Improve usage of file parsing utilities