Fix bug with substitutions in Config.resolveWith
This is a fix for Issue 664
When calling Config.resolveWith on a node with a deferred merge, in a direct decentant of the root node, an exception would always be thrown when trying to perform a substitution.
This patch contains several test, most of which previously failed, as well as a small patch that fixes the problem.
Sadly, my confidence in the patch is a bit on the low side; I don't fully understand how the ResolveSource class is supposed to work. I have simply uncommented a "return this" and removed a throwing of an exception. I'm guessing there might have been a reason wy that exception was thrown in the first place. Sadly, the commit which changed this behaviour (0a20b9ad73da7d9359bfab511db710a18072bd65), seems to be a from-scratch rewrite of the substitution resolver, so it's not possible to see in the code why this code changed in this way.
This patch does not break any additional tests.
At least one pull request committer is not linked to a user. See https://help.github.com/en/articles/why-are-my-commits-linked-to-the-wrong-user#commits-are-not-linked-to-any-user
We do not intend to extend the functionality of "Typesafe Config" further. See https://github.com/lightbend/config#maintained-by