Refactor: Unified method for getting a singleton instance

The method for getting a singleton instance of a class is now simply
called "get()". This is much cleaner than, say,
"WindowSystem::appWindowSystem()".
Refactor|libcore: ArrayValue based on QList

QList can be used for popping values efficiently from both front
and back.
Refactor|Scripting|Record|libcore: Handling super records

The Record class now has the functionality for adding new super
records into a record.
libcore|FS: Package metadata is kept in a "package" subrecord

It's better to keep a package's metadata separate from the file's
metadata, so all the package related variables were moved into a
subrecord called "package".

The package's Info/initializer scripts will run with the "package"
subrecord as the global namespace.
Scripting|FS|libcore: Added built-in functions 'File' and 'globals'

The File() function returns a File's info record. The info records of
all File instances now have the superclass Core.File. This superclass
provides methods for manipulating files: currently it has methods for
locating files via a relative path and reading the contents of a file
into a string or a Block.

globals() returns the process's global namespace as a record.