Add PRIM_TYPE_INIT and use this to define the default type constructor.

This pull request is in support of calling user default constructors.

The mechanism for calling user default constructors adds many more constructor calls, and in some cases the default type constructor called the default constructor (through PRIM_INIT) recursively.  I broke the loop in this recursion by observing that the type of the result of the call to the default type constructor is already known at the place where PRIM_INIT appeared.  

PRIM_TYPE_INIT is implemented identically with PRIM_INIT, except it provides the compiler with the info that only the type of the result is important.  Therefore, in resolving an expression containing PRIM_TYPE_INIT, the resolution tree is pruned and only the type of the result (the LHS of the containing MOVE expression) is updated.

Due to PR#67 (adding the _defaultOf() function to provide a standard interface for the creation of default values) courtesy of @lydia-duncan, this new primitive may ultimately prove to be unnecessary.  But for now, this pull request will bring chapel-lang:master closer to my hildeth:callDefaultConstructors branch, which will make the initial merge easier.  Following the merge, if this primitive proves to be unnecessary, it will be removed.
You should make sure the parent is a CallExpr here since the action assumes it.  isPrimitive() can't be called on a NULL pointer, which is something toCallExpr could generate, leading to unexpected crashes for whoever tinkers with this code next.

It might also be useful to ensure that call is the second argument to the parent move (see case PRIM_TYPEOF ~40 lines above).  If this isn't the case, then someone is using your primitive in a way you do not expect and they should get a fatal error to ensure they at least consider the consequences.