Major Google Calendar Authorization Rework

Why is this change necessary?
- In order to prepare for authorization through the GUI that is being
  developed, refactoring of authentication codes was necessary.
- In order to prepare for GUI-enabled user-setting of username and google
  calendar address

Changes made
- Create new classes: GoogleCalendarController, GoogleCalendarAuthorizer,
  GoogleCalendarPreferenceLogger
- GoogleCalendarAuthorizer handles all things related to authorization.
- GoogleCalendarPreferenceLogger handles all things related to reading and
  writing preferences (username/calendar address/authorization token) onto
  files