Reject Ace modes that are lacking a mode

@aroben suggested that the  `ace_modes` API only return valid entries, and I agree. This makes iterating over the list easier. 

/cc @github/languages 
That sounds fine. In that case I'd be in favor of getting rid of `ace_modes`, though I guess that would necessitate a 5.0 version bump.