ivory-backend-c: all header includes are local includes

- some compilers (clang) throw an error if a system include is used to
  include a local file
- we don't use inclHeader to include any system headers, and shouldnt
ivory-artifact: simple concept to capture non-c file generation and sourceDeps

- with ivory-artifact the user can specify an existing file to be copied into the
  build, or the contents of a file to be written into a build
- this allows us to repalce the clunky moduleM sourceDep concept, and its weird
  searchPath requirements, with a simpler declare once use anywhere value
- it also is useful throughout tower, where it was originally introduced
ivory: remove sourceDep from the language

replaced by completely orthogonal ivory-artifact system
ivory-backend-c: replace sourceDep infastructure with artifact infastructure

- remove optional searchpath argument from compilers - no longer a concern
- add [Artifact] argument to compilers - compiler appends the runtime artifacts
  and then runs the artifact compiler for you
- remove ModuleFile infastructure - this was a dirty hack to deal with sourcedeps
    - this means all compilers now return unit
- remove dep file infastructure - this has been obsoleted by makefile artifacts
- TODO: we can remove several command line options now as well!
ivory-hw: switch from sourceDep to Artifacts
ivory-stdlib: switch from sourceDep infastructure to Artifacts
ivory-serialize: switch from sourceDep infastructure to Artifact
ivory-examples: switch from sourceDep infastructure to Artifacts
ivory-artifact: add printing function
ivory-backend-c: simplify command line arguments

- no longer separate args for srcDir / inclDir - we never used them
- no longer using a bool for stdout - just a Maybe outDir, which captures
  srcDir/inclDir with Just, and print to stdout with Nothing

- fix up some module printing silliness
- dep files and rtIncludeDir are deprecated, so this change removes their
  command line options
ivory-examples: update with changes to backend-c opts
ivory concrete syntax: remove use of sourceDep, but not syntax surrounding it