Handling the way filters deal with empty lists

Filters assumed lists to always contain elements, the case
of empty lists was not handled correctly. Now we check for
empty lists in stored and expected values when applying the
filter.

Having this data:

```json
{ "_id" : 1 , "title" : "The Hobbit" , "numberOfPages" : 293 , "characters" : [ ]}
```

A findOne(obj) would not find the document in Fongo, but does
find it in the real mongo.