Fix some issues and add some improvements

Made a number of fixes and improvements
- Fix the stack trace to show the file and line number where a failure/error occurred (issue #286)
- Fix execution order of after_each
- Fix tags filter
- Enable/Fix broken tests in cl_spec.lua
- Incorporate pull request #293 (needed to fix broken test)
- Exit code returns number of failures + errors (this was a test in cl_spec.lua)
- Support distinguishing between test errors and assertion failures
  - Failures are only detected when a test fails an assertion
  - Errors are detected when:
    - An error is thrown explicitly
    - Assertion failure occurs outside of a test (i.e. in setup/teardown/before_each/after_each)
- Support use of 'pending' inside an 'it' block
- Throw an error when support functions are called from it blocks or if they are nested within other support functions
- Add command line option to specify a random seed
- Add command line flag to force randomization on all tests
- Output random seed used when a test fails or errors out
- Support setup/teardown functions in file context, otherwise these functions are silently ignored
- Support randomize in file context
- Remove 'file' function from environment, it is only used by the test file loader via busted.executors
- Add spec/test aliases for it
- Skip tests if setup or before_each fails