Implement Gittle.create_orphan_branch API, akin to git checkout --orphan & prerequisite bugfix; avoid deprecated Tree.entries

Here is an API that works like git checkout --orphan.

I wanted rm_all for some of the functionality but it didn't work due to ... something that looks like it needs some rethinking upstream :)

Anyhow for now I've implemented a work-around to at least get the rm_all API working as intended, and got my create_orphan_branch API on top of that.

Also added refactor to avoid deprecated Tree.entries() (as it is gone in dulwich upstream)