WIP - 2.0 block visibility

This addresses issues raised in #241

- [x] Refactor: Extract more url string methods into StringConverter class
- [x] Filtering visibility is done after retrieving values from database
- [x] Result of Visibility filter is cached with regionAlias + roleId as cache prefix
- [x] Visibility path rule use linkString format
- [x] Add tests for `VisibilityFilter` class
- [x] Squash before merge!