Alarm object refactor

 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.
6. Added mock_alarmsDB and mock_mozAlarms for testing Alarms
7. Fixed alarm_edit tests. Moved to a new alarm_edit_test.js file.