Synchronous Vows

Array literal and 'next' are syntactic sugar for nested Context.

This should make it easy to run Synchronous vows without a nesting headache.

context.js
  Context is now an EventEmitter
  Each Context knows it's children and parent
  Each Context also receive an array of vows.
  addVow added to Context.prototype to push vow onto Context.
  nextTopics added to Context.prototype to handle new 'next' declaration to use in synchronous Context
  tryEnd added to Context.prototype to emit event when this Context (and all it's children) are 'complete'

vows.js
  vow.binding.context.addVow, need to add the vow to the Context
  vows.tryEnd(batch, vow), need to pass the vow to tryEnd so we can call Context.tryEnd(vow)

suite.js
  added 'next' to all Object.keys(tests).filter
  you can not have both a topic and a next declaration
  the topic when running all vows is: topic || next.  Need a bit of logic magic to make this work
  use ctx.nextTopics() to get the right topics to pass to the topic function
  add a uuid to the vow object.  (need a better implementation then Math.random())
  if Array.isArray(ctx.tests) we may need to waitForSibling (this is that for the sake of which we did all this)
  tryEnd is defined here, added a vow param, and if we have one, tryEnd the Context

Heavily modified by @indexzero
[fix] Only allow for one event name per context that is presented in an array.
[fix] Handle vows for events that execute multiple times (fixes #191)

Add failing test for events that fire multiple times.

In `lib/vows/suite.js` add a property `count` to each vow which is incremented
every time the vow is executed.

In `runTest` (in `addVow` in `lib/vows.js`), on each execution increment
`batch.total` if a vow has been executed more than once.
Minor style fix.
Create pending tests by prefixing your tests name or context by '// '
Expect a vow to be called n times
Adding Before and After suite
Adding a new line at end of file
[api] Expose a summary of errored vows on "finish" in spec reporter. Manual merge of #252 by @cliffano.
Add json-file reporter
[api] Allow for multiple exports in required test files. Fixes #284 by manual merge of changes from @NemoPersona.
Merge pull request #328 from vowsjs/v0.9.x

v0.9.0-rc1
- fixes issue #326 - adds isEnumerable and isNotEnumerable macros
- added required test cases
- fixing typo in test case:must reference isNotEnumerable
- fixing typo in macros:must reference isNotEnumerable
- fixing issue with functions passed in as obj on isEnumerable and isNotEnumerable leading to assertion failures
[dist] Updated CHANGELOG.md for `v0.9.0-rc1`.
[dist] Bump dependencies to latest.
[dist] Version bump. 0.9.0-rc1
- merged and resolved conflicts