i18n: Add locale object

It provides the following features:

  * Loads translation messages from .po file.
  * Translates a message into the locale.
i18n: Add i18n supported text

It provides the following features:

  * Extracts translation messages from wrapped raw text.
  * Translates wrapped raw text in specified locale.
i18n: Add pot formatter

The following options are added:

  * --locale
  * --locale-data-dir

You can generate .pot (PO Template) file by the following command:

    % rdoc --format pot

You can find .pot at doc/rdoc.pot.

You can create .po from .pot by msginit provided by GNU gettext. Here
is an example command line to generate .po for Japanese:

    % mkdir -p locale/ja
    % msginit --input doc/rdoc.pot --output-file locale/ja/rdoc.po --locale ja

You can also use rmsginit provided by gettext gem instead of msginit:

    % mkdir -p locale/ja
    % rmsginit --input doc/rdoc.pot --output locale/ja/rdoc.po --locale ja

rmsginit is implemented by pure Ruby. So it is more portable for
Rubyists.

.po should put locale/ja/rdoc.po or locale/ja.po. If there are both
files, the former is used.
i18n: Support translation by .po

You can translate RDoc documentation by locale/#{LOCALE}/rdoc.po. For
example, locale/ja/rdoc.po is for ja locale.

If you have locale/ja/rdoc.po, you can generate documentation in
Japanese by the following command:

    % rdoc --locale ja
i18n: Remove needless with_line

It breaks Ruby 1.8 support.
i18n: Sort PO entries to use stable expected value

Ruby 1.8's Hash doesn't have order.
i18n: Extract MessageExtractor to another file
i18n: Extract PO to another file
i18n: Extract POEntry to another file
Use racc > 1.4.10, as 1.4.11 fixes ruby 1.8.7 compatibility
This feature moves RDoc::Options#visibility= out to a separate method
and takes a synonymous argument of :all for :private.

Since :private is not an obvious name for documenting all methods of
this visibility, we provide this optional synonym. Also, this is similar
to how we can pass "--all" when parsing command-line options.
proper handling for explicit block arguments in any_method#param_list, any_method#param_list fix for empty arguments list with non-empty yield parameters
Fixed top-level class superclass condition

* there was twice the condition `full_name == 'Object' and defined?(::BasicObject)`,
  therefore making the first instruction useless as overwritten by the second.
Use Specification#source_paths when available

This allows RDoc to generate documentation correctly when using RubyGems
2.2 which doesn't return source paths in Specification#require_paths.
Merge pull request #282 from eregon/fix_object_parent_condition

Fix top-level class superclass condition
Merge pull request #281 from vspy/master

Explicit block arguments / fix for methods without arguments
Add #282 to History
Add #281 to History
Fix handling of mixed types of first comment

When rd-style and hash-style comments are adjacent at the top of a file
Parser::Ruby#collect_first_comment would merge them together.  This
would lead to incorrect normalization of the comment.

Now RDoc detects the mixing and uses the first comment type only.

Fixes #266
Fix Document-attr in the C parser

Previously the comment-open marker was not included in the comment
returned from find_attr_comment.  This meant that normalization would
not strip the "*"s correctly leading to broken output.

Now the opening "*"s are included, but only when the Document-attr is on
the same line as the opening "/*" or on the line following the opening
"/*".

Fixes #271