Simplify automatic ticks and improve custom ticks

Now you can only have either automatic or custom, not both. Automatic ticks lost the range specifier, as it is kind of clunky. The custom ticks now use an iterator with an owned string... the allocation is unfortunate, but necessary due to Rust bugs.