`require`s where they belong

Relative require in tests is not necessary since rake runs the test
suite by pushing "lib:test" onto $LOAD_PATH, and other runners should do
as well.
don't override $PROGRAM_NAME

It's much more useful to users to have the real program name shown to
users by OptionParser messages, in case the program was invoked on the
command-line by some name other than `ripper-tags`.
consistently namespace everything in RipperTags module

Is it TagRipper or RipperTags? It wasn't consistent since the gem name
and main lib subdirectory were "ripper-tags" but the main class was
called TagRipper. More confusingly, other classes unrelated to parsing
were namespaced under TagRipper (Ripper subclass), making it a poor
separation of responsibilities.

This creates a global namespace named by the gem (RipperTags) and moves
TagRipper to a more descriptive "RipperTags::Parser".
move CLI logic under RipperTags and invoke it explicitly

Before, the bare act of `require "ripper-tags"` would process ARGV and
start generating tags. This is unwanted and potentially destructive
behavior if the library is loaded in an application, e.g. added to
Gemfile of a Rails app.

This moves all CLI logic to methods under RipperTags and requires the
`ripper-tags` executable to trigger the behavior explicitly. Bonus
side-effect is that the whole thing is now testable.
refactor output formatters

Change formatters API so that they accept one tag at the time. This is
useful so that not all tags need to be loaded in memory at once.
Formatters that sort the output (Vim) deal with that transparently.
rewrite DataReader to consume less memory

Change DataReader's API to `each_tag` which yields a tag when it's
available, then feeds one by one to the formatter. This avoids having to
load all tags in memory.

This also changes DataReader to *not load all files from disk* in
recursive mode. Previously, all files were read completely to memory,
even binary ones, to check if they have a ruby shebang. Shebang
detection is now disabled, as executable ruby scripts are usually not
loaded by other scripts as sources of classs/method definitions.

Files are only read recursively if they end with `.rb`, or if
`--all-files` was passed on the command-line.
handle SIGINT, EPIPE

We don't want no stack traces

  - INT handles `Ctrl-C` from the command-line
  - EPIPE is raised when the program that is accepting output closed its
    input before our program has finished.
don't require rubygems

Libraries should never require rubygems. The script that invokes
`ripper-tags` (usually the binstub generated by `gem install`) needs to
prepare the environment itself.
gracefully handle invalid command-line arguments

Abort but avoid showing stack trace
gracefully handle errors about invalid/inaccessible files
show `--help` normally, not on stderr

The only way a person can get help output is when they've explicitly
asked for it via `-h` or `--help`, which means it should be printed on
stdout. Also it doesn't make sense to list `-h/--help` in help ouput,
since you had to know the flags to get the help in the first place.
`-v/--version` shows version information
Merge pull request #10 from mislav/improvements

Tons improvements across the board