CLC-3248-backend-for-user-alerts

https://jira.media.berkeley.edu/jira/browse/CLC-3248

Added AppAlertsProxy to get the latest alert into the status feed for both authenticated and anonymous users. When there are no alerts in the calcentral-alerts/feed, the alert element will be absent.

General tasks:
- fixture: added the fake xml for the app alerts feature in public/dummy/app_alerts.xml
- config: added app_alerts_proxy settings to main config file including a feature flag, a 2 minute expiration time, a fake mode option, and an api url
- confing: turned on the app_alerts feature for development

Addition of AppAlertProxy:
- Format timestamps using DatedFeed
- Use get_latest method to get the most recent alert (cached as "user/global-alert/AppAlertsProxy" for 2 minutes)
- Use get method to get all feed messages (cache key: "user/global-alerts/AppAlertsProxy")
  !! This method isn't currently and may never be used. Pending definitions and use of possible "type" parameter.
- Include camelCaseless entry example in dummy/status.json:
```
    "alert": {
      "title": "CalCentral Scheduled Maintenance 3/17",
      "teaser": "CalCentral v32 release at 6 - 7am",
      "url": "http://ets-dev.berkeley.edu/calcentral-scheduled-maintenance-317",
      "timestamp": {
        "epoch": 1393495946,
        "date_time": "2014-02-27T02:12:26-08:00",
        "date_string": "2/27"
      }
    }
```
* At the momement, the AppAlertyProxy raises no specific exceptions.  It simply rescues them and logs them as errors. Result for AppAlertProxy.get_latest are either nil present.

? Question for Darlene, Eli or Chris: I'm unsure if we can rely on the feed to keep returning mutliple items in descending order by PostDate.  If we can, then we don't have to sort, so I've kept that commented until I know the answer.

Tests for AppAlertsProxy: spec/lib/proxies/app_alerts_proxy_spec.rb
Added tests for AppAlertsProxy trying to cover
- failures
  - unfound fake feed
  - unfound real feed
  - parsing invalid xml
  - parsing unexpected xml
- sucesses
  - find multiple messages -> aap_instance.get
  - find latest message    -> aap_instance.get_latest
- cache writing

? Question: for @chris.  If I'm going to continue to shut up errors this way, I need to fix my tests that are not correctly detecting the messages written to the log files.

Tests for UserApiController 
- for including an alert (or not) in the status feed depending on availability and feature flag.