This commit refactors the Clock application.

1. An Alarm constructor is used to create new Alarms, instead of
   creating new object literals.
2. Alarm repeat is represented as an object instead of a "bit
   string".
3. The AlarmsDB API is changed to pass error messages in the
   function(err, value) {...} style.
4. Asyncronous API calls are checked using callbacks. The async
   functions in Utils make this easy (although including async.js
   would be easier.
5. Testing is added for the Alarm object.
Tests would perform differently based on timezones.
This picks an hour in the middle of the day regardless of your timezone.
Added mock_alarmsDB and mock_mozAlarms for testing Alarms
Fixed alarm_edit tests. Moved to a new alarm_edit_test.js file.