Throw an error if a source is added twice to the map. Fixes #771

I don't like to use the truthhack unless what I'm writing really needs to be brief. There is too much `0` and `""` in the world for it to be a way to build reliable software.