Issue #8 - API Method Chaining

- API methods are now chainable, see below for mapping from old methods + README for how it works
- README updated accordingly
- Original tests updated accordingly (more should to be added though)
- Some new methods like settings for hitsPerPage and Page + before option


## Methods

### Callback only

* `getComments(cb)` = `comment().top(cb)`
* `getLastComments(cb)` = `comment().recent(cb)`
* `getPolls(cb)` = `poll().top(cb)`
* `getLastPolls(cb)` = `poll.recent(cb)`
* `getPosts(cb)` = `story().poll().top(cb)`
* `getLastPosts(cb)` = `story().poll().recent(cb)`
* `getStories(cb)` = `story().top(cb)`
* `getLastStories(cb)` = `story.recent(cb)`

### String(s) and callback

* `getCommentsSince(since, cb)` = `comment().since(marker, cb)`
* `getPollsSince(since, cb)` = `poll().since(marker, cb)`
* `getPostsSince(since, cb)` = `story().poll().since(marker, cb)`
* `getStoriesSince(since, cb)` = `story().since(marker, cb)`
* `getItem(id, cb)` = `item(id, cb)`
* `getUser(username, cb)` = `user(username, cb)`
* `getUserComments(username, cb)` = `author(username).comment().top(cb)`
* `getLastUserComments(username, cb)` = `author(username).comment().recent(cb)`
* `getUserCommentsSince(username, since, cb)` = `author(username).comment().since(marker, cb)`
* `getUserPolls(username, cb)` = `author(username).poll().top(cb)`
* `getLastUserPolls(username, cb)` = `author(username).poll().recent(cb)`
* `getUserPollsSince(username, since, cb)` = `author(username).poll().since(marker, cb)`
* `getUserPosts(username, cb)` = `author(username).story().poll().top(cb)`
* `getLastUserPosts(username, cb)` = `author(username).story().poll().recent(cb)`
* `getUserPostsSince(username, since, cb)` = `author(username).story().poll().since(marker, cb)`
* `getUserStories(username, cb)` = `author(username).story().top(cb)`
* `getLastUserStories(username, cb)` = `author(username).story().recent(cb)`
* `getUserStoriesSince(username, since, cb)` = `author(username).story().since(marker, cb)`
* `searchComments(query, cb)` = `comment().top().search(query, cb)`
* `searchLastComments(query, cb)` = `comment().recent().search(query, cb)`
* `searchCommentsSince(query, since, cb)` = `comment().search(query).since(marker, cb)`
* `searchPolls(query, cb)` = `poll().top().search(query, cb)`
* `searchLastPolls(query, cb)` = `poll().recent().search(query, cb)`
* `searchPollsSince(query, since, cb)` = `poll().search(query).since(marker, cb)`
* `searchPosts(query, cb)` = `story().poll().top().search(query, cb)`
* `searchLastPosts(query, cb)` = `story().poll().recent().search(query, cb)`
* `searchPostsSince(query, since, cb)` = `story().poll().search(query).since(marker, cb)`
* `searchStories(query, cb)` = `story().top().search(query, cb)`
* `searchLastStories(query, cb)` = `story().recent().search(query, cb)`
* `searchStoriesSince(query, since, cb)` = `story().search(query).since(marker, cb)`

### Object and callback

* `search(obj, cb)` = Chain of any tags & page settings + `search(query, cb)`
* `searchLast(obj, cb)` = Chain of any tags & page settings + `recent().search(query, cb)`
* `searchSince(obj, since, cb)` = Chain of any tags & page settings + `since().search(query, cb)`