Follow-up on global variable change

Ok, after thinking about it a bit, I decided to go ahead and make the
changes required to use a better name than "uninitialized" for global
variables that are external. I went ahead and made the following changes:

1. The parser now accepts both "uninitialized" and "external" global
   variables, they both mean the exact same thing.
2. The LLVM writer now emits "external" instead of "uninitialized".
3. The "feature" tests now test for both forms.
4. I added a new GlobalVariable::isExternal() method to mirror the
   semantics of the Function::isExternal() method

The old "uninitialized" modifier can officially be considered deprecated,
but it is unlikely to go away any time soon. It requires very little code
(one line) to support, and we probably have a bunch of testcases that use
it, so don't lose sleep thinking it will going away anytime in the near

I went ahead and made this change because it shouldn't break anything or
cause anyone problems. If you do have any problems that I didn't forsee,
please let me know. Tommorow I will update the C frontend for both linux
and sparc to start outputting "external" instead of "uninitialized", so at
that time you will have to update your CVS tree to be able to parse the
output of the CFE. I will send "yet another email" when I go ahead and do