recognize `Class.new/Struct.new` as class definitions
recognize `Module.new` as module definition
support `define_method`, `alias_method`
support `attr_accessor/reader/writer`
support Rails scopes & associations

  - scope/named_scope
  - has_one/belongs_to
  - has_many/has_and_belongs_to_many
adjust formatters for Rails-specific tags
module_eval == class_eval
fix superclass detection on Ruby 1.8

In case of `Class.new klass`, we don't want `klass` being interpreted as
a name of superclass since it's not a constant.

The unit test for this failed on Ruby 1.8 since the backport of Ripper
parses that line differently than its 1.9 equivalent; it interprets
`klass` as `var_ref` rather than `vcall`. This was tricky to debug due
to lsegal/ripper18#7

This quick workaround simply disallows superclass names that don't look
like a Ruby constant.
fix parsing alias/define_method with dynamic symbol

This starts treating `:"foo"` to be equivalent to `:foo` symbol literal
if the string doesn't have interpolated expressions, i.e. if it's not
"dynamic".

If any alias/alias_method/define_method string/symbol arguments have
string interpolation, the definition is ignored since we can't extract
method names with confidence.
Merge branch 'meta'