Bug #12977: Fix polling of subfolders in certain instances

Need to go through and clean this up.  The base RecursiveFilterIterator
can be used if we need to ensure that NO children are iterated through.
Otherwise, to exclude an iterator entry based on its contents (without
regard for children) we need to use FilterIterators.
Non-imap element filtering must be done via IteratorFiler
Horde::getDriverConfig() returns the parameters array directly
More cache factory improvements