add floor and ceil functions (like d3's but timezone-aware) with tests