Resolves all but 3 of compile-time failures.
Removed assertion that the PRIM_INIT clause in preFold is never reached.
Fix a few bugs with PRIM_TYPE_INIT.

resolveCall() must apply default generic type resolution to the PRIM_TYPE_INIT primitive.

CallExpr::prettyPrint() had to be updated to recognize PRIM_TYPE_INIT as an "unusual"
case.
Merge branch 'master' into addPrimTypeInit

Conflicts:
	compiler/passes/scopeResolve.cpp
Strengthened CallExpr::verify() and used this in PRIM_TYPE_INIT case in removeRandomPrimitive().

In CallExpr::verify(), added a clause to ensure that every CallExpr has a valid
parentExpr.  Also added a test specific to PRIM_TYPE_INIT, that that parentExpr is a
CallExpr.  Both of these added clauses pass a full --verify test run.

Added comments in the clause for PRIM_TYPE_INIT in removeRandomPrimitive(), saying that we
don't have to test either of these invariants (call->parentExpr != NULL &&
toCallExpr(call->parentExpr) != NULL), because CallExpr::verify() does it for us.

There is a general caveat on this assumption, since verify only operates between passes.
If the current pass violates the invariant, one or both assumptions may fail.  A good
debug technique for this would be to run verify() on the suspect AST node.
Merge pull request #82 from hildeth/addPrimTypeInit

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.