Refactoring Checkpoint 3

Bug Fix, Missing Features
-------------------------

- Fixed the bug regarding erroneous popup window positions.
- Fixed the bug where page titles and status fail to update
after importing from an external dataset.
- Fixed an importing bug where it can only import JSON data;
Now it can accept other forms of textual data as well.
- Added character set specification support when importing
from external files. The wiki can now import textual data
that are not encoded in UTF-8 (e.g: GB2302 Simplified Chinese,
Russian, SHIFT-JIS Japanese.)

Project Structures
------------------

- Less string literal littering; Currently considering
whether to enforce centralized string constant coding policy.
Specifically, only a very specific few modules are allowed
to declare string constants.
- Established formal object factories for Wiki entries,
configuration objects, and a formal class for edge sets.
Rudimentary constraint enforcing for these objects have
been established.

New Milestone
-------------

- Create a rudimentary error reporting interface for when the
javascript engine crash.
- Keep the file under 200KB uncompressed; Well-tested external
components such as jQuery and lodash are not subject to this
restriction.

TODO
----

Test the wiki engine under old versions of Firefox (3.6) and Opera (12).