Added method #resetWith to be able to reuse the same filtered collection with different collections.

The main idea behind this PR:

1. Be able to change the base collection without create a new instance of the filtered collection. 
2. I have updated the event listeners to use `.listenTo` instead `.on` because Backbone provides a better way to unbind all the events at once using the method `.stopListening`.

Please let me know if anything needs to be changed/updated in order to make this PR mergeable :smile: 

Thanks!