Sort output in tests/ignore_subdir_cmdline.t
Add a failing test (on my system)

I've noticed that a entry `_build/` from ~/.agignore caused most of the
tests from tests/ignore_subdir_cmdline.t to fail.

With `--debug`:

    tests/ignore_subdir_cmdline.t: failed
    --- ignore_subdir_cmdline.t
    +++ ignore_subdir_cmdline.t.err
    @@ -39,4 +39,97 @@
     Ignore foo/bar and build/:

       $ ag --debug needle --ignore foo/bar --ignore build/
    -  foo/quux:1:needle
    +  DEBUG: added literal ignore pattern /foo/bar
    +  DEBUG: added literal ignore pattern /build/
    +  DEBUG: Found user's home dir: /home/daniel
    +  DEBUG: Skipping ignore file /home/daniel/.agignore
    +  DEBUG: Skipping ignore file ~/.gitignore.global
    +  DEBUG: Query is needle
    +  DEBUG: PCRE Version: 8.31 2012-07-06
    +  DEBUG: Using 1 workers
    +  DEBUG: searching path . for needle
    +  DEBUG: Worker 0 started
    +  DEBUG: Skipping ignore file ./.agignore
    +  DEBUG: Skipping ignore file ./.gitignore
    +  DEBUG: Skipping ignore file ./.git/info/exclude
    +  DEBUG: Skipping ignore file ./.hgignore
    +  DEBUG: Skipping svn ignore file ./.svn/dir-prop-base
    +  DEBUG: path_start . filename foo
    +  DEBUG: file foo not ignored
    +  DEBUG: file /foo not ignored
    +  DEBUG: file foo/ not ignored
    +  DEBUG: file /foo/ not ignored
    +  DEBUG: Searching dir ./foo
    +  DEBUG: Skipping ignore file ./foo/.agignore
    +  DEBUG: Skipping ignore file ./foo/.gitignore
    +  DEBUG: Skipping ignore file ./foo/.git/info/exclude
    +  DEBUG: Skipping ignore file ./foo/.hgignore
    +  DEBUG: Skipping svn ignore file ./foo/.svn/dir-prop-base
    +  DEBUG: path_start ./foo filename quux
    +  DEBUG: file quux not ignored
    +  DEBUG: file /foo/quux not ignored
    +  DEBUG: file quux not ignored
    +  DEBUG: file /foo/quux not ignored
    +  DEBUG: path_start ./foo filename bar
    +  DEBUG: file bar not ignored
    +  DEBUG: file /foo/bar not ignored
    +  DEBUG: file bar/ not ignored
    +  DEBUG: file /foo/bar/ not ignored
    +  DEBUG: file bar not ignored
    +  DEBUG: file /foo/bar not ignored
    +  DEBUG: file bar/ not ignored
    +  DEBUG: file /foo/bar/ not ignored
    +  DEBUG: ./foo/quux added to work queue
    +  DEBUG: Searching dir ./foo/bar
    +  DEBUG: Skipping ignore file ./foo/bar/.agignore
    +  DEBUG: Skipping ignore file ./foo/bar/.gitignore
    +  DEBUG: Skipping ignore file ./foo/bar/.git/info/exclude
    +  DEBUG: Skipping ignore file ./foo/bar/.hgignore
    +  DEBUG: Skipping svn ignore file ./foo/bar/.svn/dir-prop-base
    +  DEBUG: path_start ./foo/bar filename quux
    +  DEBUG: file quux not ignored
    +  DEBUG: file /foo/bar/quux not ignored
    +  DEBUG: file quux not ignored
    +  DEBUG: file /foo/bar/quux not ignored
    +  DEBUG: file quux not ignored
    +  DEBUG: file /foo/bar/quux not ignored
    +  DEBUG: path_start ./foo/bar filename baz
    +  DEBUG: file baz not ignored
    +  DEBUG: DEBUG: Too many matches in ./foo/quux. Reallocating matches to 100.
    +  file /foo/bar/baz not ignored
    +  DEBUG: file baz/ not ignored
    +  DEBUG: file /foo/bar/baz/ not ignored
    +  DEBUG: file baz not ignored
    +  DEBUG: file /foo/bar/baz not ignored
    +  DEBUG: file baz/ not ignored
    +  DEBUG: file /foo/bar/baz/ not ignored
    +  DEBUG: file baz not ignored
    +  DEBUG: file /foo/bar/baz not ignored
    +  DEBUG: file baz/ not ignored
    +  DEBUG: file /foo/bar/baz/ not ignored
    +  DEBUG: ./foo/bar/quux added to work queue
    +  DEBUG: Searching dir ./foo/bar/baz
    +  DEBUG: Match found. File ./foo/quux, offset 0 bytes.
    +  DEBUG: Skipping ignore file ./foo/bar/baz/.agignore
    +  foo/quux:1:DEBUG: nSkipping ignore file ./foo/bar/baz/.gitignore
    +  eedle
    +  DEBUG: Skipping ignore file ./foo/bar/baz/.git/info/exclude
    +  DEBUG: Skipping ignore file ./foo/bar/baz/.hgignore
    +  DEBUG: Skipping svn ignore file ./foo/bar/baz/.svn/dir-prop-base
    +  DEBUG: path_start ./foo/bar/baz filename quux
    +  DEBUG: file quux not ignored
    +  DEBUG: file /foo/bar/baz/quux not ignored
    +  DEBUG: file quux not ignored
    +  DEBUG: file /foo/bar/baz/quux not ignored
    +  DEBUG: file quux not ignored
    +  DEBUG: file /foo/bar/baz/quux not ignored
    +  DEBUG: file quux not ignored
    +  DEBUG: Too many matches in ./foo/bar/quux. Reallocating matches to 100.
    +  DEBUG: Match found. File ./foo/bar/quux, offset 0 bytes.
    +  foo/bar/quux:1:DEBUG: file /foo/bar/baz/quux not ignored
    +  needle
    +  DEBUG: ./foo/bar/baz/quux added to work queue
    +  DEBUG: Too many matches in ./foo/bar/baz/quux. Reallocating matches to 100.
    +  DEBUG: Match found. File ./foo/bar/baz/quux, offset 0 bytes.
    +  foo/bar/baz/quux:1:needle
    +  DEBUG: Worker 0 finished.
Do the ignore list sorting last, all at once.

Presumably quicksort is faster than repeated insertion sort.
Fix a literal \n in test setup.