Refactor dataset matcher stuff for use outside of field generation.
(i.e. for reuse in filtering datasets on the client side)
Rework ToolDataParameter and ToolDataCollectionParameter to_dict to filter over valid matches.
Doesn't do anything with them yet - passing this work off to Sam to populate the dictionaries in whatever manner makes most sense for UI consumption.