Add explicit to one-argument, non-copy, non-move constructors.

Remove explicit from Application::Application(int &, char **) for
consistency.
Source widget regex-search fixes:

 * RegexMatchList::RegexMatchList had a bug where it stopped searching if
   it found a zero-size match more than half-way through the file.  These
   lines were in error:
       if (pos > piece.size())
           break;
   pos is relative to the entire content, but piece.size() only gives the
   size of the content starting with pos.

 * When I search for (foo|foobar), I expect it to match the whole of
   foobar, not just foo.  I also see this behavior from grep/egrep and from
   Sublime Text 2.  Fix it by changing the re2::Prog::kFirstMatch setting
   to re2::Prog::kLongestMatch.

 * The previous code filtered out all matches of zero-length from the
   initial forward scan.  We do not actually know whether a match is zero
   length or not until we search for the beginning, though.  The result was
   surprising -- searching for ".*" and ".*$" found no zero-length matches,
   but searching for "^.*" and "^.*$" found a zero-length match on every
   blank line.

   Example:
       0  1  \n
       \n
       4  5
   In the initial scan...
    - the pattern ".*" matched:  (0,2), (2,2), (3,3), (4,6), (6,6)
    - the pattern "^.*" matched: (0,2),        (2,3), (4,6)

   The (2,3) match is actually empty, but it gets past the initial scan.

 * The new code generally allows empty matches, with one exception: an
   empty match with the same ending location as the previous match is
   skipped.