instantiateView(path) {
		const className = 'view.%s'.format(path.replace(/\//g, '.'));

		return L.require(className).then(view => {
			if (!(view instanceof View))
				throw new TypeError('Loaded class %s is not a descendant of View'.format(className));

			return view;
		}).catch(err => {
			dom.content(document.querySelector('#view'), null);
			L.error(err);
		});
	}
Load specified view class path and set it up.

Transforms the given view path into a class name, requires it
using [LuCI.require()]{@link LuCI#require} and asserts that the
resulting class instance is a descendant of
[LuCI.view]{@link LuCI.view}.

By instantiating the view class, its corresponding contents are
rendered and included into the view area. Any runtime errors are
caught and rendered using [LuCI.error()]{@link LuCI#error}.

@param {string} path
The view path to render.

@returns {Promise<LuCI.view>}
Returns a promise resolving to the loaded view instance.