gets challenges aligned to the left edge of their time brackets.  the next step
is getting them positioned within their time brackets in proportion with their
times.

the rating axis isn't being calculated at the moment but that will be simple to
put back.

the best strategy for offsetting challenges that would be right on top of each
other is probably to offset the second one, and then place subsequent ones directly
on top of the second one.  if there are a lot of challenges, they will probably
be getting accepted quickly, so the ones on the top will move out of the way
as they expire and the next person will click on the one underneath.

if there are enough challenges that there's a high chance of the offset challenge
getting placed in the way of another challenge with a slightly different rating
and time, it may be best to just not bother with offsetting.