Use `flag` package to parse CLI options

Parsing the CLI options this way entails some differences as evidenced
below:

```
» go run bob-walker.go -bar
flag provided but not defined: -bar
usage: bob-walker options

This scripts simulates a bob walker

OPTIONS:
  -d=false: Drunk mode!
  -s=false: Sport mode!
  -t=false: Turbo mode!
exit status 2
```

- Passing the `-h` option returns an exit code of 2 rather than 0 as it
  did previously.

- Passing an invalid flag returns an exit code of 2, rather than 1 as it
  did previously.

- Passing an invalid flag displays an error message mentioning 'flag',
  which may not be as commonly understood as the concept of an 'option'.

- flag.PrintDefaults prints the default value for the boolean options we
  specify, i.e. 'false', which is a little confusing for end-users.

The above said, using the `flag` package is a more idiomatic use of Go.
Bring back bob-walker.sh!

Partially revert cd2931373b7756056ef598da1e1cb335de00b248 so that both
Bash bob and Go bob can co-exist.