fix buildmessage errors within onUse/onTest

Adding buildmessage.markBoundary ensures that we don't display a stack
containing the call stack in the tool above this point.
Use buildmessage better in api.use, etc

Provide good messages when you provide invalid things to api.use and
api.imply.

Provide better message when you provide invalid things to
api.versionsFrom.

Drop "notInitialized" hack from catalog: now that we load things in
order, it's not necessary.  (This means life will break if you use
api.versionsFrom in a uniloaded package. So don't do that.)
stop uniload packages from using versionsFrom

They don't need to and it won't work.