Handle errors correctly based on suite.options.error and the number of parameters expected by the vow

Currently, if an error occurs in a topic and a subsequent vow expects 2 or more arguments, the first (error) argument will be set to null and the second will contain the error.

Currently a reference error in a topic will be thrown.

This the expected (fixed) behavior:

Don't throw errors; catch them and handle them as follows:  When suite.options.error is set to false or a vow expects two or more arguments, return the error as the first argument and don't report it (let the user handle it); When suite.options.error is set to true (default) and a vow expects zero or one parameters, report the error in the test runner and don't run the vow.  

_Update:_

I fixed another issue (#231) in this pull request:  sub-topics will still proceed if the parent topic throws or returns an error.

_Update:_

Apparently, basic error-handling through vows is also broken(#280)--fixed by this pull request