Fix non-power-of-2 sub-image alignment

When adding an image from a file with multiple sub-images, there was an
alignment error if the sub-image width was not a power of 2.
Fix 2D array in string() call

Before this commit, calling string(some_2d_array[1, 2]) will cause an
error because string is considered a macro, and macro parsing didn't
track bracket levels.
Implements 'begin' and 'end' keywords

Treats "begin" like '{' and "end" like '}'.  A useless semicolon appears
when using "begin begin" vs "{ {", but it seems to be harmless.
Fix 'return x==y' from parsing into 'return x===y'

This fix code basically forces the 'use_gml_equals' to always ensure
that there are at most two '=' symbols during this operation.
Merge pull request #817 from Heathtech/master

A few parser fixes