Added in support for calling external formatter.

Doesn't actually format yet, but does capture buffer and maintain caret
position (roughly). Issue #26.