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.
Google's style guide implicitly uses `function()` without an explicit rule to exclude the space. I'd consider this a tacit assumption more than a guideline.

On the other hand, [this SO discussion](http://stackoverflow.com/a/11076228/1269037) highlights the benefit of having that space. To think of it yet another way, `foo()` is very much *not* the same as `function()`. For the same reason, I've added spaces between `for` and `(` - `for` is not a function name, and neither is `function`.

If you don't care as much and agree with these reasons, I think it will pay off in terms of clarity to always have a space after between `function` and `(`, or better yet, name all functions so they're more easily distinguished in error messages and the call stack and while debugging, which would render this issue moot.