Problem/Motivation
There are currently two different booelean field types.The core implementation "boolean", which has no formatters and widgets but is used in base fields a lot and "list_boolean" field type by options (ex-list) module, which has widgets and formatters and is tied to the allowed_values functionality of options.module.
Proposed resolution
Merge list_boolean into boolean. Simplify the additional features into an on_label and off_label, instead of tricks to use the allowed_values setting for that.
A core checkbox widget is provided which replaces OnOffWidget, with the same features (a single checkbox that can display the field label or the "on" label). The options_buttons widget is also available through AllowedValuesInterface, which is displayed as radio buttons which display On label and Off label.
A simple formatter is provided that displays the on or off label. The existing options.module formatter still uses the allowed_values setting/option_allowed_values() function instead of the interface and can't be used anymore for the moment.
Remaining tasks
User interface changes
The field settings of the boolean field type works a bit differently but the change is minor.
API changes
list_boolean field type is removed. options_onoff widget is renamed to checkbox.
Original report by @andypost
Follow-up from #2169983: Move type-specific logic from ListItemBase to the appropriate subclass.
Merge Drupal\options\Plugin\Field\FieldType\ListBooleanItem
into Drupal\Core\Field\Plugin\Field\FieldType\BooleanItem
Actually no reason to postpone on #2171397: Move options_allowed_values() to a method somewhere ?
ListBooleanItem is sufficiently trivial regarding allowed values (always two allowed values, 0 and 1), and sufficiently disconnected from the other List* field types (as this patch here made clear) that I'm not sure that it's really held back by those issue.
So better to decouple that one from options module, probably by making a new settings form.
ToDo: Decide about widgets and formatters