Rethink splitting of binary operators on multiple lines

Before this change, we didn't split binary operators with RHS <= 6
chars. I never liked this criteria -- it's too visual and non-semantic.

This commit abstracts the approach a bit and doesn't split binary
operators where the RHS is a node from the following list:

  * |self|
  * variable
  * string or symbol literal with value <= 16 chars
  * any other literal
  * empty array
  * empty hash

The assumption is that these nodes are usually short. The splitting
bahavior is decided by the node itself (via the |hates_to_stand_alone?|
method), which allows for future fine-tuning (should that prove
necessary).

Small note: The |self| node in the list above is just for completness.
It should never occur in generated code in RHS of a binary operator.