Adds support for passing JS::HandleValue to native functions and returning JS::Value.

This should work correctly with exact stack rooting and it's an important step for replacing CScriptVal and CScriptValRooted.
It replaces CScriptVal as a return value in one lobby function and as an argument in the StartGame function as a proof of concept.