Preparations for a multi-context, multi-threaded L8Framework. Part 1.\n\nAdd L8VirtualMachine for wrapping v8::Isolate, #1.\nMove around code to integrate the virtual machine.\nRequire Context for new L8Values, #1.\nRemove all avoidable uses of Isolate::GetCurrent(), +[L8Runtime currentRuntime] and GetCurrentContext() for #1, #5. This needed a lot of code to be moved around.\nUse modern ObjC suntax: make use of instancetype.\nMake some code cleaner and more guideline-conforming, #4.
Fix bugs in ObjCCallback, introduced by VirtualMachine change. Do some code cleaning. Fix VirtualMachine.
A L8Runtime can now actually be deallocated. Verified use of GetCurrentContext() in callbacks.

Because of the strong reference to the WrapperMap, and the WrapperMap containing a strong reference to the Runtime, plus the strong reference in the v8::Context, a Runtime would never deallocate. #1.
The use of GetCurrentContext() on the Isolate is correct, as in callbacks, the current context is always the context the callback came from. #5. (v8-users mailing list)
Remove unavailable L8Value methods. Fix L8Value documentation. Make -[L8Runtime executeBlockInRuntime:] deprecated. Property-ize V8Value, V8Isolate and V8Context methods.
Use dot notation for -[L8Value V8Value].
Un-deprecate -[L8Runtime executeBlockInRuntime:]; providing context everywhere is harder than it seems.
Rename L8Runtime to L8Context, to match the JSC API even closer.
Make doxygen ignore __attribute__s, because it throws warnings on them.
Require an Isolate for creation of NSString from v8::Value or creation of v8::String from NSString.
Make all properties nonatomic, as thread-safety is not guaranteed cross-isolate anyways.
Assure the Objective-C runtime loads the L8Export protocol.
Also add the L8Export implementation to the Xcode project.