Feature: complex log filtering.

Sometimes we need to filter log data using more complicated criteria than just a tag name. For example, ```number``` tag in the ```document``` tag normally is not filtered, but under certain circumstances can contain credit card number, which should be masked.

Code in this pull request allows developer to add Proc objects to the filters array in addition to simple tag names; each Proc object is called with document as a single parameter and can do arbitrary complex filtering / document transformations.