Incorporate review feedback

* UndefinedSource/Sink as token, instead of flow
* optionally named UndefinedSource/Sink
* retired HasNoSink, HasNoSource
* add source sink precondition