Change initialization to utilize module defined "_defaultOf" functions.

This is an initial commit, capable of being used but not as clean as I would like - ideally there will be no instances of PRIM_INIT remaining in the compiler when I have finished my work on this feature.  I have split the work into many pieces so that the code which logically goes together is for the most part in the same commit.  Details of the major thought process are in the third commit, "Adds compiler functionality for a module-defined _defaultOf function"

tested:
full /std with fifo
full /std with massivethreads (7 errors, same as master massivethreads that I could tell)
full /std with qthreads (but no hwloc, for some reason that wasn't building)
gasnet+fifo with examples
I am leaving the sync/single ones where they are because those default values are defined in runtime code and the types they refer to are only wrapped in ChapelSyncvar.  I anticipate that the same will be true for _task_list.