refs: improve API (#213)

Changes:

- Reference.oid and Reference.hex removed
- Now Reference.target can be assigned an oid
Issue #214: Cannot call TreeEntry() / IndexEntry()
Fix a couple of compilation warnings
travis: we are back to use libgit2's master branch
Add GIT_OID_ constants

- GIT_OID_RAWSZ
- GIT_OID_HEXSZ
- GIT_OID_HEX_ZERO
- GIT_OID_MINPREFIXLEN
create_reference, drop the symbolic param (#213)

Now we figure out whether it is a direct or symbolic reference based on
the type and value of the target. This guessing will fail in very very
rare situations, for that we still have the explicit lower level API.
docs: fix/improve references chapter a little bit
Check errors on module initialization
split create_blob_fromfile into fromworkdir and fromdisk to match libgit2

Both create loose blobs but fromworkdir assert the file is inside the working directory.
Merge remote-tracking branch 'bors/v0.18.1'

API change:

- Rename Repository.create_blob_fromfile to Repository.create_blob_fromworkdir
Remove "del index[xxx]" from the API

Use "index.remove(xxx)" instead.
Fix Repository.create_blob_fromdisk