BUG: tr: extra operand `d' error caused by missing quoting

Reported by Bill Goffe on the todotxt mailing list.
BUG: task listing aborted on embedded \c escape sequence

Fixed by removing the -e option that causes the echo command to interpret escape characters. Coloring of done tasks (the only step in the _list pipeline that required this interpretation) has been moved into the AWK pipeline step which is responsible for the priority coloring, and which does the escape character interpretation internally.
As a nice side effect, this shortening of the _list pipeline should also speed up the listing a wee bit.
BUG: interpretation of \033 escape sequences in task

The global substitution in the AWK highlighting of prioritized and done tasks also affected the task text itself, not just the inserted color definitions.
Factored out the evaluation of the color variables and interpretation of \033 into a highlight() AWK function.
Added test cases which check that \a, \t, \n, \x.. and \0.. escape characters in the task text are listed as-is, without interpretation.
Avoiding todo.sh help error when .todo.actions.d contains subdirs.

I have placed tests for my custom todo actions in ~/.todo.actions.d/tests/; this causes a ".../.todo.actions.d/tests: is a directory" error on todo.sh help.
Added condition for regular files to the executable check in order to exclude subdirectories.
MINOR: Removed unnecessary empty & reference in sed substitution.
Added GPL license
Fixed test environment for escaped test output.

- test-lib uses 'read -r' to parse the test session input literally, without interpretation of backslashes.
- FIX: Use quoting to maintain original whitespace (tabs and multiple spaces) from the test session input (instead of condensing into a single space).
- Using Bash instead of POSIX shell for t1340-listescapes.sh, so that the interpretation of escape sequences is not dependent on the POSIX shell being used.
- Changed Makefile so that the shell selected by the shebang line is actually used when invoking tests, not the POSIX shell.
- Above changes obsolete the multiple escaping of the test session data; now, the test session can actually be pasted as-is into a test script, even when it contains backslashes. (I.e. works as expected now.)
Factored out generation of custom action scripts.

- Reduced duplication via common make_action() function.
- ENH: Adding proper shebang line to the custom action scripts.
- Changed output of custom action to better differentiate from todo.sh output.
Skipping 'nonexecutable action' test on Cygwin.

On Cygwin, clearing the executable flag may have no effect, as the Windows ACL may still grant execution rights. In this case, we skip the test instead of failing.
Cosmetics: Corrected inconsistent indentation.
Merge branch 'inkarkat/master'

* inkarkat/master:
  Cosmetics: Corrected inconsistent indentation.
  Skipping 'nonexecutable action' test on Cygwin.
  Factored out generation of custom action scripts.
  Fixed test environment for escaped test output.
  MINOR: Removed unnecessary empty & reference in sed substitution.
  Avoiding todo.sh help error when .todo.actions.d contains subdirs.
  BUG: interpretation of \033 escape sequences in task
  BUG: task listing aborted on embedded \c escape sequence
  BUG: tr: extra operand `d' error caused by missing quoting
Fix substitution for hiding contexts/projects

When using the -+ or -@ option to hide project or context names in list
output, the color reset sequence was being deleted if the project/context
was at the end of the line.

For example, with the following tasks:

    (B) with priority, ending in a +project
    task that shouldn't be highlighted

Running 'todo.sh -+ list' would hide the "+project" from the first task,
but would also remove the color reset sequence ^[[0m at the end.  The
color from the prioritized task would continue to the next lines.

This commit fixes the problem and adds a test to verify the fix.
Fix erroneously removing pipe chars from input

cleaninput() unintentionally deletes the '|' character from input.  This
commit fixes it and adds test for adding tasks with a bunch of symbols.
Todo.sh will now check for the config in the same directory as the script--if it's not specified or found in HOME.

This is really nice if todo.sh is kept in dropbox and accessed from multiple computers.
Change the default TODO_DIR so that it's the same as the todo.sh dir.

This change makes todo.sh work out-of-the-box, and allows for excellent portable usage within Dropbox or on a flash drive.
Added quotes to dirname call.

This allows the todo.sh to exist in a path with spaces.
Environment variables override config, flags override environment variables
* Added more flags to give action developers more control over commands
that are leveraged inside their actions.
* Writing a better message for the help screen
Changed backquotes to use $() instead.

$(...) has superceded the `...` notation.  This can be found by
searching in Google "command substitution superseded"

Closes #28
Added sed line to allow priorities to be added on the command line with auto add date enabled.
Inserted test for this case in the t1010-add-date.sh test case.
Made replace test sessions independent from each other.

When the tests depend on the todo.txt contents from the previous sessions, errors will cascade and make it more difficult to pinpoint the problem.