odb: Do not allow duplicate on-disk backends
config: allow setting multivars when none exist yet

Adding a multivar when there are no variables with that name set
should set the variable instead of failing.
remote: handle multiple refspecs

A remote can have a multitude of refspecs. Up to now our git_remote's
have supported a single one for each fetch and push out of simplicity
to get something working.

Let the remotes and internal code know about multiple remotes and get
the tests passing with them.

Instead of setting a refspec, the external users can clear all and add
refspecs. This should be enough for most uses, though we're still
missing a querying function.
remote: allow querying for refspecs

Introduce git_remote_{fetch,push}_refspecs() to get a list of refspecs
from the remote and rename the refspec-adding functions to a less
silly name.

Use this instead of the vector index hacks in the tests.
refspec: unify the string and parsed data

It used to be separate as an attempt to make the querying easier, but
it didn't work out that way, so put all the data together.

Add git_refspec_string() as well to get the original string, which is
now stored alongside the independent parts.
odb: Disable inode checks for Win32
Merge branch 'development' into vmg/dupe-odb-backends

Conflicts:
	src/odb.c
Merge pull request #1493 from carlosmn/remotes

Revamp the refspec handling
Merge pull request #1489 from libgit2/vmg/dupe-odb-backends

Do not allow duplicate ODB backends
lol this worked first try wtf
Per-object filtering
Random eviction
What has science done.
Duplicated type object
Per-object max size
Some stats
No longer needed
Clear the cache when there are too many items to expire
Global option setters
Use git_odb_object_data/_size whereever possible

This uses the odb object accessors so we can change the internals
more easily...