~sschwarzer/todo-txt

Improve README.md

- Make some wording clearer
- Fix Markdown formatting
Fix name of source code file

Of course, this must be the project name, not the binary name.
Mention download site for `todoreport` binary
Change version to 0.5.0
Use long option names for clarity
Run the native build binary

Or rather, run it when we can reactivate the `build-all` task (see
previous commit). ;-)
Don't run `build-all`

Due to https://github.com/racket/raco-cross/issues/7 /
https://github.com/racket/racket/commit/21ab534da394a40060b39e56a47916e9bc95546b
the builds for Mac OS X fail.

This is a Racket bug that will be fixed only from Racket 8.4 onward, so
deactivate the build task until Racket 8.4 is released.

An alternative would be to change the makefile to skip the Mac OS X
targets, but I want to be able to run `make build-all` locally and
build for all (cs) targets.
Add `raco pkg install`

Otherwise `al2-test-runner` and `raco-exe-multitarget` won't be present.
Add `raco-exe-multitarget` as build dependency
Take project management files from sudoku-solver

Copy `VERSION`, `Makefile` and `.build.yml` from my `sudoku-solver`
package and adapt these files for `todo-txt`.
Update `README.md`

Add the new help output and provide information on the `--omit-fields`
option.
Document `#:omit-fields` argument

Document `#:omit-fields` argument and restrictions on the combination
of completion date and creation date.
Mention restriction on date combination

Mention restriction on date combination for `make-task`. You can't use a
completion date without a creation date. See the new paragraph for
details.
Add links to `--help` output

This is useful if users received the program as a standalone binary.
Support `-o` option to omit task fields

Update the help output accordingly.

As common in manpages and similar help output, display the short options
before the long options.

The help text might be somewhat confusing for a newcomer to the tool.
Maybe I can improve the help text.
Don't use `with-handlers`

- We don't need _that_ much output. With the "error:" prefix, an
  error message may look like

    error: todoreport: invalid sort specs: @

  That's a lot of colons. ;-/

- With the previous use of `with-handlers`, the exit code of the
  program in case of an exception was set to 0, not 1. On the other
  hand, with the new code, Racket sets the exit code to 1.
Add helper predicate `valid-field-omission?`

This checks a single field omission symbol, which is useful in a few
places.
Add specs post-processing

These still need to be applied in `make-command-line-data`.
Rename `sort-spec` to `task-sort-spec`

This is for consistency with `task-group-spec`.

In `cli.rkt` in the `command-line-data` struct, however, rename the
field name `task-group-specs` to `group-specs` for consistency with
the `sort-specs` field. The use of this struct has a rather narrow
scope, so prefer the shorter names `group-specs` and `sort-specs`.
This is similar to the argument names `group-specs` and `sort-specs`
in `group-tasks` and `sort-tasks`.
Rename `omit-fields/c` to `valid-fields-omissions?`

I think, the new name is more appropriate since I want to use the
function as a plain predicate.
Next