Create initial version of ByPropertyIdGrouper

This is some initial idea to fix #190. It aims to be a lightweight alternative to `ByPropertyIdArray` by not providing any editing methods but only indexing and querying the data.

### TODO
* Finish tests
* Use in #198