Fixed a deadlock between the break lock and the hook lock
Moved checking for decoda_name out into its own function so we can use it in the hook callback instead of just PostLoadScript
Fixed UpdateHookMode not keeping track whether it has previously seen a function in the stack with a breakpoint.

Fixed breakpoints not being set in any of vm other than the first created RegisterScript now checks whether script has breakpoints already set for it and the script has already been registered this is handled in ExistingScriptLoadedInVm.
Changed the VirtualMachine struct into a class and refactored some existing functions into it.