[WIP] 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
This method is not tested. I'm wondering if this behaves correctly in cases where you have an empty array for a property id.