change underlying principal when raising label
make compile with head
Port to use JS::Heap<>

TODO: double check that unsafeGet is actually safe as used.
bsic fresh principals

- Implemented FreshPrincipals
- Underlying privileges = list of principals;
  In general, code should be granted access to the compartment
  principal, but can be granted access to the privileges (any created
  fresh principal)
- Fixed bug where initial label of sandbox was the sane label as that
  of the enclosing compartment -- didn't clone.

- TODO: use fresh principals in roles and labels besides converting
  them toString()