fix caching of styles

If you choose to go with option 2 that I listed in #32, this is the PR.
It's probably wise to also add a test for the caching of multiple styles, where a new style using the same 'substyle' as the cache is created.
```javascript
var redBold = chalk.red.bold
var blueBold = chalk.blue.bold
assert.notEqual(blueBold('foo'), redBold('foo')
```

This will catch a more subtle version of the current bug, where the `_styles` array is not shared globally, but per-style. This is what I ran into when attempting a naive fix last night ;-)