Added ssh and http repo urls to projects
Fixed tests
Changed tests for projects
Added user keys functionality and tests
Added keys info to readme
Moved UserKey struct to userkeys file
Added gpm dependencies file
Merged DeployKey and UserKey to PublicKey
Refactored tests. Put stubbed responses to stub dir
Moved structures declarations to files, where they are actually used
Added newer golang version
Renamed RemoveKey to DeleteKey
Added user methods (except create and update) with tests
Added test to repository
Refactored projects tests
Added tests for hooks
Added test helper for requests stubbing
Refactored all tests to use stubs
Merge pull request #7 from arrowcircle/master

User keys functionality, ssh and http repo urls for projects
Add raw version for ResourceUrl and buildAndExecRequest

Gitlab use URL-escaped `/' for API to fetch project related
resources by its namespace, so it's looks like:

    namespace%2Fproject-name

The problem is Go's `http.NewRequest` use `url.Parse`
which in turn unescape the `%2F' automatically.
The only way to keep the escaped char is to use Opaque params at URL
as noted at: http://golang.org/pkg/net/url/#URL

Here is the first attempt to work-around the limitation,
we introduces another version of `ResourceUrl` and `buildAndExecRequest`
each called `ResourceUrlRaw` and `buildAndExecRequestRaw`, respectively.
`ResourceUrlRaw` will returns concatenated url and the opaque params, and
`buildAndExecRequestRaw` may accept opaque params in addition of url.