Save/Restore global state between test files

When a file context is pushed, save a copy of _G and package.loaded.
Then when the file context is popped, restore the saved values of _G and
package.loaded. This prevents a 'require' in one file from polluting the
global environment of another file. This also allows modules that are
required in one test file to be reloaded in another test file.

This addresses issue #62.
Fix issue #272 Syntactic sugar does not work

Allow the following alternate syntax for context blocks:
  describe "something" (function()
    it "works" (function()
      assert(true)
    end)
  end)
Fix error message for table error objects

When throwing a table as an error, the error message reads 'Nil error',
which is confusing because an error object was thrown. The error message
should at least display that a table was thrown.

Restore the previous behavior of printing out the error table.

Issue #284.
Fix issue #284 Error reporting is inconsistent

Errors are reported differently depending on the type of error messaeg:
  $ busted testcase_spec.lua
  ●●●
  0 successes / 3 failures / 0 errors / 0 pending : 0.0 seconds

  Failure → ./testcase_spec.lua @ 10
  testcase fails with table error
  {
  }

  Failure → ./testcase_spec.lua @ 6
  testcase fails with no error
  Nil error

  Failure → ./testcase_spec.lua @ 2
  testcase fails with string error
  ./testcase_spec.lua:3: error message

Update error reporting to display the line information for non-string
error types.
Remove unnecessary requires in output handlers
Display error dots on file/describe failure
Fix junit output for file errors
Fix TAP output to show errors

TAP output was only showing success and failure results, but not errors.
So update TAP output to show errors as "not ok", just like failures.
Fix getTrace() to look for current file name
Fix tests not running in parent directories

Error in pl.path.normpath causes leading '../' directories to be
stripped from a file path. This, in turn, prevents busted from finding
any files located in parent/ancestor directories.

Implement a fixed version of normpath and use it instead of
pl.path.normpath.
Fix help string for the default seed value
Add shuffle commandline flag (alias for randomize)
Add commandline option to repeat tests
Support for running tests standalone

Allows unit tests to be run standalone by just adding a require to the
top of a test file. This is useful if, for some reason, a command line
tool is not viable.

Just add the following require statement to the beginning of a test file:

	require 'busted.runner'()

This addresses issue #294.
Fix indent in runner
Refactor runner to be compatible with live coding
Revert "Fix getTrace() to look for current file name"

This reverts commit da8220091aa965086a6b8b30582826d0ea45bfef.