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
Perhaps a better way of saying this is that types known to the Chapel compiler are expected to support certain interfaces.  When implementing assign-to-ref, we discovered that we expect every type known to Chapel to implement an assignment operator, and this made it necessary to add a default implementation for assignment for types marked as "extern".
In that view, the provision for default-initialization adds _defaultOf() to the required interface.  And therefore, providing a default implementation to elevate unknown types up to the expectations of the Chapel compiler makes sense.  But in that case, the compiler-provided default needs to do the only thing it can do with a type about which it knows nothing: nothing.