Make Cvar::Register return a bool for success.

The VM services would call Register on cvars given by the VM.
That call would fail for engine cvar names but the VM services
didn't know and would try deleting the cvars when the VM is
shutdown, removing the engine cvar.

Also we cannot simply use a Cvar::IsRegistered because in a
multithreaded environment it would be incorrect:
- VM service thread (checks if the VM can create the cvar):
    IsRegistered("foo") -> false
- Other Engine thread (for whatever reason):
    Register("foo", ...) // success
- VM service thread (thinks the VM can register the cvar):
    Register("foo", ...) // silent failure
Later...
- VM service thread (cleaning up VM cvars):
    Unregister("foo")