Report system upgrade

My local fork of 8chan has received the following changes.

  - Reports are now grouped by content instead of displaying individually. This carries a stylistic improvement.
  - Reported content is now sorted by the number of reports it has received rather than the age of the reports.
  - Actions have been created to handle all reports on a single post at once.
  - Actions carried out from the Global report list will take you back to the Global list instead of the Local list.
  - Existing Dismiss functionality has been improved to consider the duality of Global and Local reports.
    - Dismissing a report as a Local moderator will not dismiss it Globally.
    - Local moderators can now "Promote" a report to Global status.
    - Global moderators may now dismiss a report without dismissing it locally using the "Demote" action.
    - "Promote" and "Demote" actions can also be applied to all reports on a single post at once.
  - "Clean" functionality has been added to content.
   - Posts marked clean will ignore any reports.
   - Clean status respects the duality of Global and Local reports. A Local moderator cannot mark a post clean Globally. A Global moderator can mark a post clean globally, locally, or both at the same time.
   - Marking a post clean, both locally and globally, will add a message to the bottom of the post stating that the post is not in violation of local / global rules. If a post is marked clean on both, it will display two messages.
   - Editing a Clean post will revoke its Clean status to prevent abuse. This also clears the notices.

Additional fun:
  - Board list has been moved under the moderator tools.
  - "tomorrow.css" is added to the roster of our stylesheets.
  - I've added `.8chan`, `.is-moderator`, `.is-not-moderator`, and `.stylesheet-stylesheet_name` classes to the `<body>` tag to help our awesome CSS people make clean custom CSS.

![Global report queue with these changes](http://i.imgur.com/egQrawA.png)

There is an SQL update required for this.

The table `post_clean` is used to store clean status.
```
CREATE TABLE `post_clean` (
  `clean_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `post_id` int(11) unsigned NOT NULL,
  `board_id` varchar(58) NOT NULL,
  `clean_local` tinyint(1) NOT NULL DEFAULT '0',
  `clean_local_mod_id` smallint(6) unsigned DEFAULT NULL,
  `clean_global` tinyint(1) NOT NULL DEFAULT '0',
  `clean_global_mod_id` smallint(6) unsigned DEFAULT NULL,
  PRIMARY KEY (`clean_id`),
  UNIQUE KEY `clean_id_UNIQUE` (`clean_id`)
);
```

This column is used to divide a global moderator's decision and a local moderator's decision.
```
ALTER TABLE `reports` 
ADD COLUMN `local` TINYINT(1) NOT NULL DEFAULT 1 AFTER `global`;
```