Added `getItem`

`getItem` retrieves an item using provided `ItemId`. That function might
be useful to fetch an item when its type is not known beforehand.
Removed explicit exports of `*Id` types

It seems that those exports weren't necessary as those `*Id`s are
exported by `module H` anyway. Please correct me if I'm wrong.
storyId :: Int ---> storyId :: StoryId

Made it the same way as it's in other types.
Endpoint typeclass

Added Endpoint typeclass it would be used for generalizing API requests
instance Endpoint CommentId Comment
instance Endpoint ItemId Item
instance Endpoint PollId Poll
instance Endpoint PollOptId PollOpt
instance Endpoint UserId User
instance Endpoint JobId Job
instance Endpoint CommentId Comment
instance Endpoint TopStoriesId TopStories

Web.HackerNews.Story.MaxItem -> Web.HackerNews.Item.MaxItem

instance Endpoint MaxItemId MaxItem
Generalized API calls

All calls to API are done through generic function `getEndpoint`.

The `get*` shortcuts are implimented through that generic function

The good thing is that now everything that uniquely relates to specific
call is defined inside a module which represents that call.
Refactor: Joined LANGUAGE Pragmas
Refactor: Imports

- Unified format (Control.* -> Data.* -> Web.HackerNews.*)
- Explicit import from modules
Refactor: Unified module format

(Types -> Endpoint Instances -> JSON Instances)
Refactor: Endpoint instances

- DRY. Item endpoint are all the same.
- id variable name
Bumped package version
moved getEndpoint to Web.HackerNews.Endpoint
Merge pull request #3 from zudov/get_item

Added `getItem`