Currently SFS is reread everytime a wizard (action, project template, wizard
wizard) starts. Could those wizards and other code accesssing SFS somehow
utilize "live" SFS kept by LayerNode? So LayerNode and other code would use
per-project instance firstly created when it is firstly needed. And maybe
garbage-collected if it not needed for sometime (e.g. was used from a wizard but
LayerNode wasn't expanded yet and other wizard wasn't ivnoked for some time).
Feel free to retake if you have time for it. I didn't take a look at the
LayerNode code too much yet.
1. SFS is not recreated from scratch - pieces cached by individual modules.
2. If we introduce a cache, we have to introduce all sorts of hellish logic to
figure out when to invalidate it. I preferred to leave it a little slow than
introduce another dozen bugs.
I'm not working on APISupport anymore. Reassigning to owner of the component, so
the issue is not 'forgotten' forever.