Improvement/refactor definitions

Simplified definition no longer sets on a `defintiions` object. Instead each definition returns an array of arguments that can be passed to `defintiions.set`.

Added `augment` to `index` module which is another helper around the `api.augment` helper.