Add strict mode (close #211)

Squashed commit of the following:

commit 3768974c1fd44f24ebd39316bbd6195b2e6c0709
Author: Julien Biezemans <jb@jbpros.com>
Date:   Sun Dec 21 15:19:34 2014 +0100

    Extract and rework strict mode scenarios

commit 15c378885092140f0092e9b917a72532347ea014
Author: Julien Biezemans <jb@jbpros.com>
Date:   Sun Dec 21 15:06:42 2014 +0100

    Fix strict mode short flag

    Also fix tests.

commit 36a15f9f2bf85988e7f91b5e15e36db8728220ac
Merge: cc16459 7662a29
Author: Julien Biezemans <jb@jbpros.com>
Date:   Sun Dec 21 13:08:58 2014 +0100

    Merge branch 'master' into feature/strict_mode

commit cc164598ef8e3d86bd0842a32b3081219fbe125f
Merge: b619b96 87a620b
Author: Julien Biezemans <jb@jbpros.com>
Date:   Sun Dec 21 13:06:20 2014 +0100

    Merge remote-tracking branch 'origin/master' into feature/strict_mode

    Conflicts:
    	features/cli.feature
    	lib/cucumber/cli.js
    	lib/cucumber/cli/argument_parser.js
    	lib/cucumber/runtime/ast_tree_walker.js
    	spec/cucumber/runtime/ast_tree_walker_spec.js

commit b619b96143ca67470e35639cfd6cb099dac8fcbe
Author: Elwyn <elwyn@L1.co.nz>
Date:   Thu Oct 2 10:57:53 2014 +1300

    Scenarios for e2e testing strict mode

commit 07031d930fa658620965349e5265bb34dfb38617
Author: Elwyn <elwyn@L1.co.nz>
Date:   Mon Jul 28 12:39:43 2014 +1200

    Tests for strict mode

    Fixed tests failing due to addition of new flag. Added tests for new
    functionality in ast_tree_walker.

commit b252c90268d9e00383b95523df889a6f2538ad51
Author: Elwyn <elwyn@L1.co.nz>
Date:   Mon Jul 28 12:37:18 2014 +1200

    Add strict mode

    Pulling in strict implementation from lchenay. Modified the --help
    message for strict to be inline with Ruby cucumber.
Add strict mode to volatile configuration (close #258)