Is it possible to define a FieldFormatter as a service
You don't need to define your FieldFormatter as a service. FieldFormatters are instantiated inside the FormatterPluginManager's createInstance method (FormatterPluginManager::createInstance) which calls a create method on the formatter plugin object, passing a $container object as a parameter. 

But this happens only if your FieldFormatter implements the \Drupal\Core\Plugin\ContainerFactoryPluginInterface. From then on, you are able to inject the service inside your FieldFormatter.