Fixing the case where a single char is provided from breaking the algorithm

- Also making the algorithm more verbose, for the sake of readability

#6 
There's a lot of special-casing here now, and I don't think we need it.

Might we make `compute` something like

```coffee
  compute: (array) ->
    array
    .map(@getCharInt)
    .reduce((previousInt, currentInt) =>
      (previousInt + currentInt) % @max
    , 0)
```
?

The big differences are first doing a `map`, and then giving an initial value to `reduce`. This version returns 0-9 instead of 1-10, but we can easily fix that.

I also just inlined the `getNum` method, because naming it wasn't really helping explain its purpose, but if we can think of a better name we could go back to that (or better yet, just name the entire reduce function as something like `moduloAddition` or something).