Refactoring to have Songs build their segments
Tidied up toString methods, adding optional song part
Corrected bug in segment generation