Added multiselect ability for slide elements and slide well.
Element affected by undo/redo becomes selected.
Fixed bug with multiple elements selected after undoing removing an element.
Lot of refactoring:
- Fixed indentation.
- Changed order of commands to be a little more organized.
- Removed 'return' where it's not needed.
- Added 'this' variable in forEach calls.
- Fixed explicitly defined variables where seen.
Added unto command for text changes.
Fixed formatting to match incoming pull request

`git merge -Xignore-all-space multiselect`

will allow a merge the without much conflict.

gh-189
Updated gitignore to ignore vjet project files
Cleanup
Document.write leaks a new window every time it is used.

Launching a presentation caused us to leak 2 megs of memory with the
document.write solution.  Launching n presentations would leak n*(2+)
megs.

Update to use innerHtml but in a much more
streamlined way that actually ended up being simpler than document.write.

gh-177
Merge branch 'multiselect'

Conflicts:
	app/bundles/app/strut.deck/Deck.js
	app/bundles/app/strut.deck/Slide.js
	app/bundles/app/strut.slide_components/view/ComponentView.js
	app/bundles/app/strut.slide_snapshot/SlideSnapshot.js
	app/bundles/app/strut.themes/ClassEditor.js
	app/bundles/common/tantaman.web.undo_support/CmdList.js
Added analytics to preview modes
Merge branch 'stable'