(NC-198) Improve classification behavior.

The classification route checks the classifications from all groups the
node matches to see if they are disjoint. If they are, they are merged
into a single classification that is returned to the client. If not, an
error is thrown that is caught by the classification conflict
explanation middleware and transformed into a 500 response with details
about the conflicting values and where they came from.
(NC-198) Improve classification conflict error msg.

In the human-readable message, name the groups that the node was
classified into, and explain what conflicted (the environment field,
names of classes with conflicting parameters, names of variables with
conflicting values).