Make as much of the type resolution API private as currently possible.
Fix unintentional find/replace.
Fix crash caused by adding mltiple index signatures on enums
Ensure no decls are orphaned
Clean declGroups on update
refactor getParentPath
remove superfluous null checks on PullDecl.getParentPath calls
remove invalid statement
Remove unused method and rename another.
Move certain caches off of individual semantic-info's and onto the info chain itself.

Because we clear all semantic information when a
file changes, there is no need to store this
semantic info at the file level.  Instead, we can
store it at the chain level and clear it all in
one step when an edit happens.
Remove unused methods.
Update Language Spec.
Remove unused method.
Delete dead code.
Remove unintentionally added code.
Remove dead code.
Update language specification.
Move diagnostics over to sitting on the semantic info chain instead of on individual semantic infos.

The data we want to put on a semantic info is data
that can be replaced at a file granularity when an
edit is made.  Diagnostics are not in this category.
When we edit any file, all diagnostics are dumped.
As such, they fit better at the chain level.
Update LKG.