Cursor.Get is now Cursor.Seek, and returns the first possible key.

This makes range and prefix queries possible.

Closes: #44
Merge pull request #45 from benbjohnson/seek

Cursor.Get is now Cursor.Seek, and returns the first possible key.
Bidirectional cursors.
Merge pull request #47 from benbjohnson/bidirectional-cursor

Bidirectional cursors
Bucket stats.
Merge pull request #48 from benbjohnson/bucket-stat

Bucket stats
Add DB.Stat().
Merge pull request #49 from benbjohnson/stat

Database Stats
Refactor Transaction/Bucket API.
Merge pull request #50 from benbjohnson/api

Refactor Transaction/Bucket API
Revert "Refactor Transaction/Bucket API."

This reverts commit 1ad2b99f281d587b767b36f886401e81d17915a9.
Refactor Bucket.
Merge pull request #51 from benbjohnson/bucket-refactor

Refactor Bucket
Remove RWTransaction.Bucket().

Add an reference to the RWTransaction onto Transaction so that calls to
Transaction.Bucket() and Transaction.Buckets() return writable buckets
when attached to a writabe transaction.
Add bolt.Open().

Per the suggestion of @tv42 and @cespare, this commit adds a package level
function to create and initialize a database at a given path. This is
a common interface for database packages.
Merge pull request #53 from benbjohnson/open-api

Add bolt.Open()
Add bucket reclamation.

After RWTransaction.DeleteBucket() is called, all pages related to the
bucket are moved to the freelist for that transaction.
Fix the mmap resize to use the correct size.

Fixes #54. Previously the DB was calculating a minimum mmap size but
using the wrong variable after it calculated the size. This commit
changes the DB to use the correct variable.
Merge pull request #55 from benbjohnson/fix-mmap-resize

Fix the mmap resize to use the correct size.
Minor refactor.