Moved API to top file, change enum to use bigint vs AnyInteger

Using bigint will take a little more space in memory, but it should
simplify comparisons when we get there, and removes the API module's
dependency on the rest of the project.
Removed Environment.isBound

Not sure where I was going to use that, but it isn't being used now.
Changed type definition for Env

Enclosed the existing type in a list, so that there's a list ref for
each scope level, and added an API.Namespace list ref
Updated Environment.nullEnv
Updated Environment.getVar
Updated Environment.setVar
Updated Environment.defineVar
Allow replacing a variable with a different type be redefinition

Only done in Environment.defineVar so far, will add in the other
definition functions while reworking them.
Reworked Environment.defineEmptyVar for new Env type

Also adjusted to allow changing a variable's type by dim'ing it again
Updated Environment.defineTypedVar
Updated other definition functions to return a warning on redim
Wasn't using bindVars, removed it
Rewrote TestHelpers.runAll into two functions

runAll works as the old function did, but does so by calling to
runAllInEnv with a default value for the second argument.
runAllInEnv allows specifying an environment, which will allow for
testing things like exceptions from the define functions when there are
no scopes available.
Updated tests
Updated Environment.defineTypedVar to not explode

Since F# evidently isn't lazy as Haskell is, the `result` variable was
being evaluated before the check against scopes.IsEmpty. Boom!
Changed host to only ReadLine() after tests is Debugger.IsAttached
Added test and run scripts to project root

Make life easier in powershell
Updated host environment
Updated built-in  interactive environment
Removed Environment.nullEnv

Nobody wants a null environment anyway, since we need at least one
scope level for anything useful.