Use GlobalSettings by default for AssetsBuilder (fixes #2919)

- call global `onHandlerNotFound` when asset can’t be found
- also factor out `onBadRequest` and `onError`
- make these three error handlers `protected` so that their behavior can be overridden.
If that’s the way things are going, then I completely take your point and agree. Right now, GlobalSettings runs out of road as soon as you want to be more nuanced than a catch-all solution… but that’s probably exactly why you are planning to remove it.

I’ll restrict the visibility to private, and hang on for the better architecture.