Added Line.lineTags ; improved show-line-tags.
Specify [begin,end) and from to Matcher.search().

Otherwise we don't get the proper behavior when searching for regexps that
match the start of a line.
Make electric-quote more DWIM.
Nixed unused import.
A few RegexpMatcher fixes.

1. Apparently m.find(pos) resets any region set in the matcher, which is
obviously not what we want. In the case of searchBackward() we turned out not
to need it because m.find() did just what we wanted anyway.

2. We just switched search() to use m.find(pos) which we now know doesn't work.
Unfortunately there's no way to start a search at a position without also
resetting the match boundaries. Thanks Java! So instead we have to loop past
all matches prior to our desired start position. Yay for unnecessary burning of
CPU cycles. It's especially annoying because Matcher defines an internal
search(pos) method which does exactly what we want. Fuckers.

3. Some hackery was introduced to avoid infinite looping when we're
replace-regexp'ing '$'. Previously we'd replace the 0-length $ match with some
text, then start searching right after the inserted text, which, lo and
behold!, was the end of line again, repeat! Now we detect this pernicious edge
case and simply skip past EOL after the first call to replace(). Inelegant!