chore(Viewer): remove failSafeUtil
feat(viewer): allow additional modules to be passed

This enables users to instantiate Viewers/Modelers via

```
new Viewer({
additionalModules: [ ... ]
});
```

to bootstrap their own modules with the viewer without overriding the
existing ones.