Allow basic server side execution

Updates to support HTML output within environments such as fruit loops.


Major changes:
- Adding test exec within the fruit loops env
- Avoids the use of DOM APIs directly
- Disable behaviors such as DOM events that don't make sense on the server side

Still remaining after this PR is the client-side restore logic. Also opening this PR with failing tests as the failures are due to upstream dependencies and I don't expect many material changes to this code while fixing those.