Also
- simplify and add tests
- remove large memory leak (persistant store of all non-project layers)
- remove broken support for direct loading postgres/virtual layers
by string (Python version was very broken and would never match
a postgres/virtual layer)
Allows creation of an index on an attribute in a layer for faster
attribute based filtering
Support depends on the underlying data provider for the layer