Adds support for nested chalk expressions.

green(a + blue(b) + c) will now look the same as green(a) +
blue(b) + green(c), as expected. In the previous implementation the
output would have been green(a) + blue(b) + c, because the reset code of
the second expression would close all expressions around it as well.

Now this reset code is replaced by a start code of the outer lying
expression, both stopping the inner and re-starting the outer.

For example:

![screen shot 2014-06-21 at 06 21 53](https://cloud.githubusercontent.com/assets/3891755/3347835/d235d92a-f8fc-11e3-9151-938c3d9a4c32.png)

Where previously everything after the inner green text would have been white.
Ah, didn't see your inline comment response.

We could indeed precompute all closeRe's - let me do that.

I'm afraid there is no way to do this without string replacement. The source string being passed in, to be wrapped in colour codes, can simply already contain other colour codes. There's no way to predict this, and it's also not guaranteed to always be the last character, e.g. if there's a three levels deep nesting.