Model.fetchAll returns existing promise if there is one outstanding.

Fixes issue #386