Cut back on modifying options in the callee

It's usually unexpected by the method caller that the passed options
object is modified by the call. The responsibility to clone lies
with the callee.

Unfortunately, there are tests expecting some options to be modified,
and there might be code relying on this.
BaseModel: clean up options use in fetchAll, add FIXME
Merge pull request #16 from Everyplay/bug/no-clobbering-options

Cut back on modifying options in the callee