Add DataSchemaContextNode.PathMixin
Remove isMixin() which provides a dummy boolean. We introduce PathMixin,
which guarantees a PathArgument without relying on
DataSchemaContextNode.pathArgument().
Partially seal the implementation hierarchy, making it clear that
PathMixin cannot be freely mixed in by random outsiders -- it really is
only provided by AbstractMixinContextNode.
This also makes it clear that all mixins are NodeIdentifiers, so we
centralize their creation in AbstractMixinContextNode.
JIRA: YANGTOOLS-1413
Change-Id: Ie834ac288658cebe3363ae051f004db4b0a7df75
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>