Compilation now iterates backwards through global class/func hashtables

This fixes a previously unencountered bug where buckets themselves
were modified in the global zend function and class tables, making
it wholly unreliable to hold onto HashPositions between compilation
calls to mark our current position. Instead we hold onto the number
of functions/classes we've currently seen and iterate backwards that
distance in the respective global tables per compilation pass. This
assumes that the Zend compiler always appends new classes and functions
to the end of their respective tables, which seems to be the only
assumption about the tables that holds true.
Constructors with no args are now enforced

This commit also skips compilation of closures produced by the
'create_function' function.
Fix bug when using error callback and passing too many arguments

The enforcement of arguments didn't properly exit when iterating
past the end of the function's type information. This only surfaced
when using the error callback, because the callback doesn't interrupt
normal program flow (as opposed to fatal errors).
Bump bugfix version to v0.6.4