Add parser support for while loops

While loops -- one of the least interesting loops that ruby has to offer.
While loops can have break or next inside

While true, this is misleading. Currently you can have a break or next **anywhere**
that you would have another statement. I'm pretty sure the following terrible
pseudocode is parseable right now:

while true
  puts [break, next, break]
end

I'm not entirely sure how to get out of this with yacc. It is clear to me that
these keywords are only valid IN a loop (much like how return is only valid inside
of a function). Perhaps the key insight is that they are only valid as the beginning
of a statement? (e.g.: you can't have them inside of an array, but they can be at
the beginning of a line and be modified by "if" or "unless").