Fixes #16 and more bug fixes

Essentially caches last subdir's commit-id in:  ```git config --local -get lastcommitid$(subdir)```
Then uses that cached commit-id to determine where later subrepo-pull merge should occur.
I also added a couple parameters (**--no-ff** and **-X patience**) to the merge (done on a subrepo-pull).

Also there are some bug fixes (as detailed in the commit messages).