Fixing branchMap locations, kind of, and adding tests for said fix

I saw that `start` and `end` locations of each `branchMap` value were always the same location (actually the `start` one). Here's a fix.

Ultimately, I think that these locations should be the location of the `consequent` or `alternate`, but when I tried to implement this, those locations weren't being made available in, for example, `node.consequent`. It looked like a perfectly valid `BlockStatement` (for example), but without a `loc:` attribute.