Now that widgets are in good shape, time to start on formatters !
Core issue used for testbot runs (until we have a patch ready to push for review in the wild):
#1785690: Testbot helper issue for 'formatters as plugins'
I extracted the code I had in field-plugins-yched, and adapted it to match the current design of the widgets code.
It lives in the field-plugins-formatters-1785748 branch.
The FieldInstance::getFormatter() method is a little more involved than getWidget(), since an $instance holds several formetters, and because of nice things like field_view_field($arbitrary_display_settings), and $display['type'] = 'hidden'.
Also, the prepareView() method being 'multiple' (acts on a array of $entities) adds some fun logic.
Only text formatters are migrated for now. A legacy layer, quite similar to the one we put for widgets, catches the other ones.
To match the current state of widgets, we should also migrate number formatters and test formatters.
#1785752: Move test formatters to the new API
#1785750: Move number formatters to the new API
#1787236: Convert email module formatters to Plugin system
#1787238: Convert options module formatters to Plugin system
#1787242: Convert file module formatters to Plugin system
#1787246: Convert image module formatters to Plugin system
#1787248: Convert taxonomy module formatters to Plugin system