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
Merge remote-tracking branch 'upstream/master'
Save consistency with flare-engine 1.0 code
Merge remote-tracking branch 'remotes/upstream/master' into books