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