Massive speedup for PostgreSQL array parser (Fixes #788)

This refactors the PostgreSQL array parser so that it is not 0(n^2)
for multibyte strings.  This splits the input into an array of
characters using split(//), then processes each character by
shifting off that array.  It also refactors the parser so that
it no longer uses recursion for nested arrays (using a simple
stack instead), reorders conditions to reduce the number of
times things need to be evaluated, and inlines simple methods
to speed the parsing.

For an array with a single entry with 100,000 UTF-8 characters,
processing is now 100x faster, and within about 12x of the C
version in sequel_pg.  Previously, Sequel was about 3x slower
than ActiveRecord for parsing such an array, it is now about 35x
faster in my testing.

All existing tests pass with this new implementation.

I've removed the node-postgres license from the pg_array extension
RDoc because after the refactor I don't think there's much
similarity between the node-postgres code and the Sequel code.