'while' loop support

Stylus has 'for' loops, but there are cases where the number of iterations is not known at the start of a loop (depends on inside calculations).  

Example from 'modular-scale' module I'm trying to do (not possible with 'for' loops):

```
i = -1
v = size * (ratio ** i)
while v > base
    push(results, v)
    i -=  1
    v = size * (ratio ** i)
```

This pull request contains tests and implementation.