Use view2DState in interactions

This PR cleans up the behaviour of interactions when the view is incompletely defined.

Notable changes:

* Already, if the view is not defined (e.g. center is not set) then the map is not rendered. This PR includes cf0bebd which extends this to preventing any interactions from being used when there is no rendered map to interactive with and no way to convert pixel coordinates to geographical coordinates.

* Instead of calling `view.getCenter()` / `view.getResolution()` / `view.getRotation()` in interactions, `view.getView2DState()` is used instead, which ensures that undefined values are treated correctly (e.g. `undefined` is treated as `0` in the case of rotation).

Comments welcome.