Fixes #5767: add extension point for plugins in node details

Basilcally, just extends the right class. I also promoted visibitliy of nodeId, because that's something plugin want to know for node details (ideally, we should even be able to access all node inventory info, but I didn't know how to do that - we should have a component only taking node information and in charge of diplaying them). 

I had to correct the way we used dispatch/display, because we used to completly shortcut the routing logic (where plugins hook) in our use of the code. 
Because we HAVE to use the Snippet "dispatch" method all the time - that's the point of the PR. 
mainDispatch is an inherited method, we have to implement, that's the way plugins work. 

So, I wanted to provide a stable API for caller of the method => keep a "display" method with same signature
But display MUST use dispatch => make current display private, make the new display call dispatch. 
The last step (having two entry point in dispatch) is the simplest way I found to bind everything together.