Replaced CellProperties with a custom node class.

Preparation for the upcoming lazy tree loading work.
Lazy tree loading phase 1: don't create every tree node at once.
Made sure molecules are always displayed as folders, even if empty.
Lazy tree loading phase 2: don't create every DisplayTreeNode at once.
Use require instead of assert for checking whether InfoSize is positive.