Make extern classes a bit less class-like
Make extern classes a bit less class-like

In this commit, I'm adding the "no object" pragma/flag to extern class
declarations at parse-time to reflect the fact that extern "classes"
are really just pointers to structs and not classes that are part of
the Chapel class hierarchy.

I also set the defaultValue to NULL (rather than gNil as for internal
classes), as the compiler chokes on assignments of nil to extern
classes once it's not a subclass of Object, and also because we
shouldn't be initializing extern classes anyway.

Both of these changes are generally in support of the I/O patch being
worked on by Michael Ferguson, though I think they are worthwhile in
any event.

As discussed with Michael and the team, long-term, it's quite possible
that we may wish to retire the concept of extern classes, replacing
them with references to extern records, e.g.  But until references are
implemented, this seems to potentially continue to have plausible
value.  (And it arguably could continue to have value afterwards since
extern classes provide more of a general pointer-like capability
whereas the current concept of ref intents and values is more of a
reference that cannot be changed...)




git-svn-id: 88467cb1fb04b8a755be7e1ee1026be4190196ef@19418 3a8e244f-b0f2-452b-bcba-4c88e055c3ca

chizarlicious/chapel,CoryMcCartan/chapel,hildeth/chapel,hildeth/chapel,hildeth/chapel,sungeunchoi/chapel,sungeunchoi/chapel,hildeth/chapel,chizarlicious/chapel,chizarlicious/chapel,chizarlicious/chapel,chizarlicious/chapel,sungeunchoi/chapel,sungeunchoi/chapel,CoryMcCartan/chapel,sungeunchoi/chapel,CoryMcCartan/chapel,sungeunchoi/chapel,hildeth/chapel,sungeunchoi/chapel,sungeunchoi/chapel,CoryMcCartan/chapel,chizarlicious/chapel,CoryMcCartan/chapel,chizarlicious/chapel,hildeth/chapel,CoryMcCartan/chapel,CoryMcCartan/chapel,hildeth/chapel