Option: Pass function as a formatter

This is for API implementers, so we can pass a custom formatter function as a parameter (as opposed to formatter file name).

This doesn't effect current implementation.