Use `ifn?` to check if form can be used as predicate.

Objects created with `fn`, as well as data structures that can be used
as a function (eg: sets, maps) implement IFn. Using `ifn?` instead of
`fn?` allows us to use sets and maps as predicates.
Merge pull request #60 from vedang/patch/pred-fns

Use `ifn?` to check if form can be used as predicate.