[core] Pluggable auditing logger

Provides a cleaner way to log requests to Hue.

e.g. of events:
{"1393901417":
 {"status": 200, "impersonator": null, "service": "useradmin", "url": "/useradmin/",
  "user": "test", "ip_address": "127.0.0.1", "authorization_failure": false},
"1393901418":
 {"status": 200, "impersonator": null, "service": "useradmin", "url": "/beeswax/",
  "user": "test2", "ip_address": "127.0.0.2", "authorization_failure": false}
}

Config:
  # The directory where to store the auditing logs. Auditing is disable if the value is empty.
  # e.g. /var/log/hue/audit.log
  ## audit_event_log_dir=

  # Size in KB/MB/GB for audit log to rollover.
  ## audit_log_max_file_size=100MB
HUE-1624 [hbase] Configurable write permissions

Add write switch.
Remove Bulk upload, new row, add column, and edit cell when canWrite is false.
Also remove add table functionality when canWrite is false.
[hbase] Change initialization to allow for callbacks from clusters

Load list of clusters then initialize the app
HUE-2007 [pig] The script is blank when loading from the dashboard section
[pig] Logs can be missing with Yarn

So one of the pig problem is that because yarn logs disappear before re-appearing in History Server after a few s and we poll every 1s

Bumping the refresh time to 0.5 instead of 1s seems to solve the problem until Yarn improves or we put a smarter solution.

I tried to keep pooling until 10s in order to get the last part of the logs from the HS but then it bugs if the user runs the script in the meantime!
    $(document).on("stopLogsRefresh", function () {
      window.setTimeout(function () {
        window.clearInterval(logsRefreshInterval);
        $.jHueTitleUpdater.reset();
      }, 10000);
    });