store.filter should always return a FilteredRecordArray

This pull request makes the `store.filter` method return a `promiseArray` when a 3rd `query` argument is provided. 

Currently `store.filter` returns a promise when the `query` argument is provided and a `DS.FilteredRecordArray` when the `query` argument is not present. Returning a `promiseArray` will allow users to treat the output from `store.filter` as an array in all cases while still supporting users that expect promises.

Returning a promiseArray is also consistent with other store methods such as `findAll` and `findQuery`.