Code cleanup and de-"clever"ification for mustache_helper.js

* fixed indentation
* consistent spacing "if (", ") {", "function ("
* explicit return statements, esp. for "!f()" at the end of a function
* a && b -> if (a) b

Also simplified and separated the "firstexist" and "firstnonempty" helpers from a can.each loop, so IDEs could pick up their definitions.

Commented several helpers.

Only style, no functional changes.
Re. the `for (var i...)` - I've respected the existing coding style in the file (lots of `for (var)`s). Maybe it's a style we need to improve. Can we make that a separate goal after closing this PR?

Re. unrolling the two helpers, I've filed an [issue with PyCharm](https://youtrack.jetbrains.com/issue/WEB-14315) to provide documentation for Mustache helpers. They already do that for Mustache helpers in Meteor projects, so I think they'll implement it quickly. The feature would work if helpers are defined separately.

Yep, I'll unroll the `with_page_object_as` helper too.