Refactor Bucket

This pull request moves transaction functions to the Bucket itself. This is similar to pull request #50 but does not consolidate `Transaction` and `RWTransaction` together.

```
(b *Bucket) Cursor() *Cursor
(b *Bucket) Get(key []byte) []byte
(b *Bucket) Put(key []byte, value []byte) error
(b *Bucket) Delete(key []byte) error
(b *Bucket) NextSequence() (int, error)
(b *Bucket) ForEach(fn func(k, v []byte) error) error
```

Buckets created with a read-only transaction will return `ErrBucketNotWritable` when `Put()`, `Delete()`, and `NextSequence()` are called.

/cc @tv42