Allow (Optional) Ordering Of Settings In settings-view

Discussed here: https://discuss.atom.io/t/configuration-item-order/12982

This PR:

* [x] Allows package authors to specify an `order` field in their package config schema
* [x] Sorts settings in `settings-view` by the order (if specified)
* [x] Falls back to existing default behavior (alphabetic sort) when no order is specified, or when two items with the same order exist

Configuration example:

```coffeescript
module.exports =
  config:
    aSecondOption:
      title: 'I Should Come Second'
      description: 'Really, I come second'
      type: 'boolean'
      default: true
      order: 2
    zFirstOption:
      title: 'First'
      description: 'Winner winner'
      type: 'string'
      default: ''
      order: 1
    cThird:
      title: 'I am in 3rd place'
      description: 'Hi'
      type: 'string'
      default: ''
    dFourth:
      title: 'I am in last because I am alphabetically inferior'
      description: 'Bye'
      type: 'string'
      default: ''
```

Note: Underscore's `sortBy` is a stable sort, so we can chain the two sorts together reliably.
Can this be null? I think `_.chain(null).keys().value()` will always return a non-null array