Degenerate slugs

Fixes #2671, tweaks contentload to be more meaningful.

Summary of changes:
* Prevent periods in file names causing slug collisions
* Check for slug collisions for already generated slugs
* Give verbose output for assessment items and contents put in topic tree.
It gets used inside the 'construct_node' function - but that gets called recursively, so I instantiated it outside of there for ease.