handle files with non-UTF-8 encodings

Some ruby source files have non-UTF-8 content but don't declare an encoding
header. String operations on such files will fail on Ruby 1.9+, so it's
essential to transcode every file's contents to strip away invalid byte
sequences.
add `--exclude` option

Should work like ctags `--exclude`:
  - matched against basename
  - matched against full path
  - supports `*` glob pattern
  - empty pattern clears all excludes

The default exclude is `.git`

Fixes #2
refactor DataReader#each_tag

Now logs debugging info to stderr
add `--tag-relative` option

This ctags-compatible flag allows us to place the tags file in a
subdirectory such as `.git/tags` and have vim still able to find the
referenced files.