what is the difference between "notification area" (systray), "indicator plugin" (indicator) and "status notifier plugin" (statusnotifier)
Notification area is the classical system tray for X11. It's based on the XEMBED protocol. Due to being X11-specific, it's considered obsolete by many progressive minds who think that Wayland is the future.
Status notifier implements the StatusNotifierHost part of the StatusNotifierItem specification. This mechanism is based on D-BUS, which is independent of the windowing system, so it's compatible with X11, Wayland etc..
Indicator is a plugin showing status of various messaging apps. This one is not a system tray implementation. It's a specialized type of info display & control. There is some documentation on this system on an Ubuntu Wiki page. From what I could gather there, it uses libindicate to communicate with the applications, and this library, in its turn, uses D-BUS for message passing.
Of these three, the first two seem to be alternatives, so you could use one of them. But in my experience, Notification area shows more complete set of icons from different applications. In particular, if you have some programs which use XEMBED-based tray icons, you need this plugin. See also: "Where are my systray icons?" blog post by a KDE developer (from 2014, when this mess appeared).
The Indicator plugin is needed if you want to have a single place to access messaging apps like e.g. Pidgin or Evolution. By default, in Ubuntu messengers like Pidgin don't show their real tray icons, relying on the presence of the Indicator. If you remove Indicator from the panel, be sure to enable these tray icons in the settings of each messenger you're using.