If a custom repo is specified, make sure it ends in "/"
Only throw error if infodata is still null

Also, some tabs.
Fixes for local.zip xml fallback
Get better at falling back when json is unavailable or incomplete
Capture zip name and use for fallback if JSON is unavailable
Add the first unit tests
Ignore case when matching semver strings