[12] Basic setup for subject event.
[13] Make SubjectList singleton so it share data across all activity.

Loading subject detail from file consider a quite expensive operation, we make the SubjectList in to a singleton class so the data is only loaded on the first time of execution (or after a gabage collection occur).
Doing this can also help us to ensure the integrality and consistency of the SubjectList across all of the activity.

-redesign load file algorithm, no more empty subject, schedule, or event will be created when error occur, the SubjectList will be clear when error is occur during load file.
-temporary disable load external file function.
-remove plenty load/save file code from many files ^_^