Support direction functions (earliest, latest, before, after, nearest, and exact)

Support queries to the latest earliest points from a selection, as well as points exactly at, and points nearest (either before, after, or overall nearest) a given timestamp
Can you collapse the `write_device` calls at a single timestamp into one call?

```ruby
client.write_device(device_key, ts_before, sensor_key1 => 4.0, sensor_key2 => 2.0)
client.write_device(device_key, ts_after, sensor_key1 => 3.0, sensor_key2 => 1.0)
```