Added build option SONAME to control whether VERSION and SOVERSION were set for the git2 target, as some platforms require that this NOT be set.
refs: explicitly catch leading slashes

It's somewhat common to try to write "/refs/tags/something". There is
no easy way to catch it during the main body of the function, as there
is no way to distinguish whether it's a leading slash or a double
slash somewhere in the middle.

Catch this at the beginning so we don't trigger the assert in
is_all_caps_and_underscore().
Merge pull request #1401 from carlosmn/leading-slash

refs: explicitly catch leading slashes
immutable references and a pluggable ref database
Merge remote-tracking branch 'ethomson/immutable_refs' into development
refs: Dude, you're OUT.
optional tracing
Merge pull request #1403 from ethomson/tracing

Optional tracing back to consumers
Merge pull request #1399 from nathan-osman/development

Add SONAME build option to facilitate building for Android.
Notify '*' pathspec correctly when diffing

I also moved all tests related to notifying in their own file.
Add 2 failing tests related to '.' handling

No files matched. It fails in `workdir_iterator__update_entry`, as it thinks there is a "." (respectively "./subdir") prefix.

I don't understand iterators well enough to propose a correct fix for now (if there needs one). So far, here is what I thought of:
- Should we "compact" the passed pathspecs, in order to remove the "." and ".."?
- Should we have a custom `prefixcomp` function for iterators, that handles "." and ".." differently?
Add file filtering plugin capabilities to diff