Array.prototype.join calls toString on the arguments anyway.

As a bonus this gets rid of a jshint warning about
defining functions inside loops.
`AmpersandState.extend();` shouldn't explode.
Simplify derived property caching logic, and remove/ignore jshint errors.
0.3.1 misc cleanup