fix pretty-printer for array keys that have " and [ in the keys
fix pretty-printer for array keys that have " and [ in the keys

Summary: unfortuanetly var_dump() actually doesn't preserve
information in every case:
var_dump(array("a\"]=>\n  int(4)\n  [\"b" => 4, "c" => 4)) ===
var_dump(array("a" => 4, "b\"]=>\n  int(4)\n  [\"c" => 4))
bc it neither escapes nor gives the length of string keys

so we had to track the variable we are pretty printing as we print
it, just to do key verifications.  it works tho.  test suite
refactored as well.

Reviewed By: eletuchy

Test Plan: the included test suite with the new addition, and
also did =$GLOBALS which is something considering how bloated
codebase is these days.

Revert Plan: ok

chooaya/phpsh,rjmi004/phpsh,facebookarchive/phpsh,terrorbox/phpsh,rhee/phpsh,chooaya/phpsh,AsafMah/phpsh,chooaya/phpsh,rhee/phpsh,rjmi004/phpsh,AsafMah/phpsh,rjmi004/phpsh,terrorbox/phpsh,AsafMah/phpsh,terrorbox/phpsh,facebookarchive/phpsh,rhee/phpsh