Adding an .is_proper helper method
Refactoring list printing to handle circular and improper lists