Add a cache to getPublicQualifiedName().

After running the racing demo for one lap, this cache has 252 entries
and a 99.87% hit rate, and has reduced the cumulative JS allocations by
about 15%.
Add and use efficient string concatenation functions.

This patch modifies most of the string concatenations that show up in
race.swf and slime.swf as causing more than 1 MiB of allocations.
Don't execute AVM1 functions on VM failure
Fixes AVM1 toString()
Merge pull request #1598 from yurydelendik/master

Fixes several swfdec AVM1 tests
Fixes lint regressions from d6b57e8e0218ead
Merge pull request #1599 from yurydelendik/master

Fixes lint regressions from d6b57e8e0218ead
Extend DataBuffer to read SWF specific data fields
Forces player to stop on fscommand "quit"
Merge pull request #1601 from yurydelendik/master

Forces player to stop on fscommand "quit"
Fixes make bootstrap
Merge pull request #1596 from tobytailor/master

Extend DataBuffer to read SWF specific data fields
Removes createInflatedStream
Moves deflate to the inflate.ts
Merge pull request #1602 from yurydelendik/inflate

Moves deflate to the inflate.ts
Port remaining test coverage from displayObject tracetest to unit test and remove tracetest
Merge pull request #1603 from tschneidereit/master

Port remaining test coverage from displayObject tracetest to unit test and remove tracetest
Fix property name of original toString function in AVM2 runtime
Move URLLoader-based tracetests to reftest harness

Because our url loading stuff isn't up to snuff in the shell yet, apparently, and the tests work otherwise.
Convert ByteArray tracetest to unit test