The naming scheme is mimicking existing code "al_putAlarmList", for example. I assume it was a shorthand for "alarm", but I don't know for sure. I can change to a better name. 

I originally tried to preserve existing naming schemes where possible. Making those changes brings in seemingly useless back and forth. 

Some guidance on, for example, when (if ever) to do this weird underscore scoping thing "al_putAlarmList", "al_enableAlarm", "al_save" etc. would be helpful. 

Also, I have simplified the save code here. The right place to worry about whether or not we've received an id from the database is in alarm.js. It will look like: 

```javascript
    if (!error) {
      this.alarm.setEnabled(true, function(err, alarm) {                           
        if (err) {                                                                 
          callback && callback(err, alarm);
          return;
        } 
        AlarmList.refreshItem(alarm);
        AlarmManager.renderBannerBar(alarm.getNextAlarmFireTime());                
        AlarmManager.updateAlarmStatusBar();                                       
        callback && callback(null, alarm);                                         
      }); 
    } else {
      // error
      if (callback) {                                                              
        callback(error);
      } 
    }
```
The calls to AlarmList and AlarmManager should be pulled out as well, but I would like to address this in a future patch where we refactor view code. This seems like it deserves a separate bug+PR.