Add support for simple array natives

This allows you to pass arrays to natives that have array size
passed in the argument next to the array itself. The code does
not yet support functions with a misplaced size argument, e.g.
CreateDynamicPolygon from streamer which has the following
prototype:

native CreateDynamicPolygon(Float:points[], Float:minz = -FLOAT_INFINITY, Float:maxz = FLOAT_INFINITY, maxpoints = sizeof points, worldid = -1, interiorid = -1, playerid = -1);

This also fixes an apparent bug in the 'S' specifier where it allocated
heap space based on the length of the input string instead of the real
size.