Make server view nodes use a common base class

We often call -isMemberOfClass: in MXMServersOutlineView depending on
the type of node we're working with. This is a bit verbose and can be
prone to errors. Add a common base class to all nodes and implement
convenience methods that can be used to check the type of node.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>
Let each node return the number of child nodes

Since we now have a common base class for all nodes we can move let the
data source methods call them. Let each node return the number of child
nodes. This simplifies the data source method immensely. There's no need
to check the item's type or to type cast it. Just call the method and
return the result.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>
Ask server outline view node if it is expandable

Each node should know if it is expandable, and expose this as a method
which the outline view can call in order to determine if a specific node
should be expandable. Implement the method and switch the implementation
in the outline view to call it.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>
Ask server outline view node for child nodes

Delegate finding the child of a node to the node itself. Return top
level account nodes if no node is provided.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>