Enable PathLikeSelector.make_index() to create indices from selectors comprising path identifiers of different lengths; update tests accordingly.
Validate indices created in Pattern._create_from() to prevent creation of patterns with fan-in via from_product(), etc.
Merge branch 'port_ids' of https://github.com/neurokernel/neurokernel

Pull performance updates for pattern and pathlikeselector
changed core.py example to measure also performance, added more logging for debugging purposes