Rather than only allow for templating using datetime.now(), we should allow a custom implementation of make_filename so that upper level directories can be dynamically created.
For example, if we have area detector data that we want written to
/data/<session-id>/<detector-name>/yyyy/mm/dd/<filename>.hdf
We currently cannot handle an update to the <session-id> without re-initializing the ophyd device (relaunching the profile).
Since we want this auto-updating behavior, I propose that we allow for make_filename to be a Callable that maps a FileStorePluginBase -> tuple[str, str, str] for the filename, read_path, and write_path, respectively.