Write plugin interfaces

The write plugins provide interfaces to define custom write handlers, handler configurations based on the write plugin settings, and to allow handlers to access other services.