refactor($parse): simplifying multi-statement execution

Part of #8901
refactor($parse): adding function names for easier debugging

Part of #8901
perf($parse): calculate array lengths once at start of loop

Part of #8901
refactor($parse): simplifying some while(true) loops

Part of #8901
perf($parse): removing references to Parser/Lexer from parsed expressions

This allows the parser and lexer objects to get GC-ed once the expression
is parsed.

Part of #8901
perf(jQuery): only trigger $destroy if a handler exists

Speeds up largetable destruction by 30% (500ms) when jQuery 2.1.1 is present.

Closes #8859
chore(package.json): tidy up dependencies
docs(form): move param tag outside of main description
docs($filter): remove duplicate documentation of register method
chore(package.json): tidy up dependencies
chore(package.json): tidy up dependencies
chore(bower): refactor bower usage

The gulp bower task in the docs app was never actually running since it couldn't
find the bower.json file and was silently failing. Updating to a newer bower
highlighted this issue.

This commit moves the docs app specific bower components into the docs folder.
There are only jquery and closure compiler related components in the project
folder now.

It also improves the gulp bower task to provide better feedback of progress
and errors.