Preliminary refactoring of 'filter' to use Hash::Layout

In progress...
Basic empty + source_events tests pass again
'isa' filter tests pass again
Calls new HL 'lookup_leaf_path' method + expanded filter tests
Filter logic now takes dynamic second pass + expanded filter tests
Expanded filter tests