Fix panics when changing charset

If a new spinner was created with a charset of length `n`, then updated to a charset of length `m` such that `m < n`, it would panic with an array access out of range. This fixes that by removing the `Offset` field from `spinner`. I believe that to be the correct fix because it removes the ability to cause it to panic for that reason, even if the user changes the field directly, allowing the ChangeCharSet method to be removed (which I did not do).

I also changed type of CharSet from a `map[int]string` to a `[][]string` - this removes the requirement of manually numbering them, makes lookup linear, uses less space, and (IMO) makes more sense.