We weren't resolving module names according to the spec, which says that an import entity name could reference a member, a type, or a module. (but the preceding items must be a module.)
When computing a qualified name, if we are the last item the name and in an import declaration and can't find a type, then we will search for a member with the same name.
update test case with new error message
Fix issue where function with the 'any' return type did not require a return statement to be provided.
Don't log timing information to our host if they aren't asking for it.
Simplifying code.
Simplify how we end up checking for name collisions.
Unify resolver code.
Remove unnecessary binder code.
Decls have reference equality.  No need to provide value equality semantics.
Don't store a span inside a decl.  it is redundant given that decls point at AST nodes.