fixes #71 using string length when counting characters.

Also example with ASCII colors added.
@hallas I think it is assumed that the given `chars.complete` or `chars.incomplete` will both consist of 1 character.
But unicode characters such as `'\uD83D\uDCA9'` aka '💩' aka [U+1F4A9 dog dirt](http://codepoints.net/U+1F4A9) have length of 2
```js
'💩'.length // 2
```

so if we have say
```js
width = 10;
ratio = 0.9;
chars.complete = '💩';
```
then previously the calculated length for incomplete would be negative.
because "complete" string would be joined properly, but complete.length would be twice as big.
and `Array(10 - (9 * 2))` would trigger an error, because you can' t construct an array with a negative argument.