Fixed print()'s tab bug.

Hooray!
Fixed various js-related things.

- rp.dump() now properly recognizes references and links to them
- ^^^^^^^^^ now formats strings in escaped, quoted format (to indicate the type of the field a bit better)
- radiant.callv instead of radiant.call and hacks makes life much easier.
- Make sure we're logging *after* we have been initialized.
Use load_manifest instead of load_json.
Allow empty calls to print()/log() to insert a newline
Re-wrote most of the mod loading.

- Now using fancy enums for loading status/source! They're accessible from within the (new) rp.constants table.
- The list of mods is saved into rp.available_mods. A mod has the following attributes: name, source, status, manifest.
- Introduced new status for mods, "skipped": Mods that are not RP mods or have been disabled are labeled as "skipped". They still show up in rp.available_mods but will not be loaded and do not count as valid rp mod.
- Improved logging by using more useful messages and adding a few more.