Fixes issue 439: Added exitCode enum to differentiate between different error conditions

Issue link: https://github.com/Microsoft/TypeScript/issues/439

As per the suggestions in the issue, added an enum to indicate the different exitCodes - (success, parseError, semanticError, emitError, commandLineError). Updated the corresponding code in tsc.ts to utilize the enum.
The fact that we lose information signaling semantic errors makes me wonder if these should be disjoint values so that a user can test against different types of errors. However, POSIX only allows 8-bits to be used in an exit status, so this would be an issue.

In any case, I think declaration emit taking precedence over semantic is ideal, so this is fine.