Bidirectional cursors

## Overview

This pull request changes cursors from being forward-only to being bi-directional.

Reference issue: #46.


## API Changes

There are two new methods added to `Cursor`:

```
func (c *Cursor) Last() (key []byte, value []byte)
func (c *Cursor) Prev() (key []byte, value []byte)
```

/cc @tv42