Pass unconverted Unicode path data when iconv doesn't like it

When using Iconv to convert unicode path data and iconv doesn't like the source data (because it thinks that it's not actual UTF-8), instead of stopping the operation, just use the unconverted data. This will generally do the right thing on the filesystem, since that is the source of the non-UTF-8 path data anyhow.

This adds some tests for creating and looking up branches with messy Unicode names.  Also, this takes the helper function that was previously internal to `git_repository_init` and makes it into `git_path_does_fs_decompose_unicode` which is a useful in tests to understand what the expected results should be.

I'm curious to see if these new tests work on all the various Travis platforms...