Experimentation with capture_runas to make it more resilient.
Merge origin/master

Conflicts:
	src/main/java/com/laytonsmith/core/functions/Meta.java
Added array_filter.
Added rclosure(){} and @nolinking, for future use in the Federated system.
Updated vim syntax highlighter to support double strings.
Procedure definitions shouldn't be restricted
Handle old style extensions properly in the error handler.
Merge origin/master
Catch exceptions in yml_decode, and create CREs.
Added cmdline_prompt_input event. Corrected an error in the compiler with smart strings.
colorize() was using the wrong optimization option.
Added syntax highlighting to http_request.
Handle non-existant ids in unbinds properly.
Added the undocumented async_player_chat event.
Merge origin/master
Added x_run_on_main_thread_later/now().

Also, the Threading class is being unhidden from documentation, with the disclaimer that this is experimental, and subject to changing at any time.
Made the Persistence Network threadsafe.
Support for nulls in query()
Convert CVoid and CNull to static getters.

This has the immediate effect of lessening the memory footprint, but the main
purpose of this is to prepare current and future code to be ready for if CNull
changes to a Java null, thus requiring less refactoring in the future. The memory
footprint effect will be minimal, but still advantageous. Additionally, code should
be neater. This does however potentially break extensions, which will need to
be recompiled, with the changes applied. This should prevent any future
breakages at this level in the future.
Fixed boilerplate test failure.