Fuzz tests
Adds fuzz tests to the generated Elm output and now also generates a slightly more elaborate directory structure, see README.md, allowing the user to much easier test that the generated decoders and encoders behave as expected before merging them into their existing project.
Reduces the noise when referencing qualified Elm types and functions across modules in the generated files by using import Data.Foo as Foo statements.