[ refactor ] List is now a newtype

* This lets us declare instances without the need for FlexibleInstance
* CyclicListExamples shows us how to use the interface.