Slightly refactor how unpackers are applied

Fixes some weird freezes, e.g

    {"url":"{%%}{%%}"}

got detected by urlencoded script, but, being unable to urldecode, fell
into an infinite loop.
Merge pull request #182 from bitwiseman/master

Javascript line wrapping option based on expanded newline preservation points
Add @bitwiseman to jsb-footer
implement _last_index_of to help poor old IE
Partial revert of removal of reset_statement_flags
Make parsing of bare if/for/while/do consitent and beautifiable.
Tweaks statement indent unwinding to handle nested bare if and else
Reduce the cases where output needs trimming by indenting tokens when printed.
More space output cleanup.
Clean up kruft
Rather than tracking newline state, we can now look at the output
Defaulting print_newline parameters to false