[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
Can you add `stub` to the end of the name? `provider` is kinda confusing in this context.