(non_)empty_constructor_needs_parens rule fails incorrectly when constructing a chained class name

e.g. `new bar.foo.Foo()`

This change could use some scrutiny by a compiler-y person -- we need a way to find the final identifier/class name of the `new`. There are probably more expressions that are possible that would incorrectly fail.