Word truncation

Patched the truncate strings method to include truncation by word

Examples: 

    'Once upon a time'.truncate(4, word: true)
    => "Once upon a time"

    'Once upon a time in a world far far away'.truncate(4, word: true)
    => "Once upon a time..."

    'Once<br>upon<br>a<br>time<br>in<br>a<br>world'.truncate(5, word: true, separator: '<br>')
     => "Once<br>upon<br>a<br>time<br>in..."

    'Once<br>upon<br>a<br>time<br>in<br>a<br>world'.truncate(5, word: true, separator: '<br>', omission: '[...]')
     => "Once<br>upon<br>a<br>time<br>in[...]"
Ah, depending on what you want, try `/\s+/` or `/\b(?=\w)/`.

Or, after building `$1 + omission`, it could compare the length of the result to decide whether it should still just return `dup` after all.