adding Filter and CFilter function

filter will iterate over a object only returning
the items which yield a true response from the predicate
function.

we also have a concurrent version of this which
is implemented using go routines