bus: parse matches locally and allow registration of callbacks for them

This includes code to parse and split up match strings which will also
be useful to calculate bloom filter masks when the time comes.