While landing D43428 as rC325966, i caused an internal compiler error of an MSVC 2015 compiler on a buildbot. Then i tried to hotfix it in rC325969 (which didn't help) and in rC325978 (which suddenly helped, i.e. simply moving the existing code around has suppressed the crash). Then i committed D43481 as rC326016 and MSVC crashed again. Then i committed rC326021 as a hotfix, and it seemed to help again.
Bring back the check for the cast kind, add a test for it.
The test exposes an interesting edge case that we don't support yet: implicit constructor conversion. For now we only support explicit constructor conversion (i.e. functional cast as in D43480). For whatever reason, in this case the AST doesn't contain a CXXBindTemporaryExpr even if the object requires destruction, so the assertion in ConstructionContext::createFromLayers that says that any construction context with an MTE but without the respective BTE should be of an object with a trivial destructor (which isn't a problem here because the object is lifetime-extended anyway).