Add a command line param for test execution timeout.

Added a -timeout command line param with a 5 second default.  The command line value is only used if a *.goconvey
file does not contain a more specific value with "-timeout=[value]".

Users can send "-1s" for an infinite timeout (on the command line or in a *.goconvey file).
Fix #81.

Uses gls instead of file:line association to track test execution.

All tests except for embedded assertion passing. New test for #81
coming up.
Add test for nested iterative convey reports
With optional local context, re-enable skipped test
Clean up unnecessary goto
Remove unecessary Write() method
Clean up debugging prints
Unneeded defer
Clean up failure mode calculation
Clean up visited type (unneeded). Move some functions around
Organization and documentation
More documentation
Fix import ordering
Remove unused ShouldBeTopLevel method
Ignore folders that begin with an `_`
Added a few tests to handle `_` directories
Merge pull request #263 from markbates/underscore

Ignore folders that begin with an `_`
Merge pull request #260 from dlclark/master

Add a command line param for test execution timeout.
Minimal fixes to reporting for nesting scopes.

Uses a quick hack to correctly obtain a 'unique' ID for scopes
in the flat map used by the JSON and story reports. A correctly
crafted Convey name could collide with a key in the map, but that
is likely to be self-sabotage.

A more elaborate solution would be to have a generic report-gatherer
tree, and then implement the various output reports as walkers over
the tree structure at the end of every story.
Use a map instead of a fixed slice ordering