Enable changes for cluster access

This mostly involves rewriting filter functions so that they aren't
anonymous closures passed around. This breaks clusters when code is
upgraded which is particularly problematic for the _change feed since
its a long lived request.