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

Fixes issue #386
Merge pull request #387 from jnovatnack/reuse-fetch-all-promise

Model.fetchAll returns existing promise if there is one outstanding.
Fix belongs_to dirty change to use correct key
Merge branch 'fix_belongs_to_dirty_key'