Changed Declaration to a tree

Added an instance for functor
Code formatting tidy
Added Traversable instances

Added to Declaration, Module and Package
Switch to deriving extensions
Maybe parseDecl

Closes #26
Tidied comments
Hide Prelude's mapM instead
Merge pull request #24 from jspahrsummers/decl-functor

Changed Declaration to a tree