Async

~~There is still some work to be done on `config.save()` - it does not actually save anything when used as a promise, and when used in the traditional callback route... it takes too long to finish. Something weird is going on here.~~

EDIT: `config.save()` fixed, refactored a bunch of stuff, generally more awesome, yay