There is no way that the Olympics could be moved at this point. I lived in Atlanta through the 1996 Olympics, and it took the city YEARS to prepare for it, building up all the infrastructure and the event locations. Even if somehow Sochi got wiped off the map tomorrow, nobody else would be able to handle hosting the Olympics.
As for a boycott, that really only hurts the boycotting nations, especially their athletes, who have trained for years and may not get another chance. 1980 and 1984 proved that one.
There's also a problem with the athletes themselves protesting by wearing rainbow flags or whatever - they would likely get disqualified and banned from participating in the games, since one of the IOC's rules for the athletes is that they can't display/promote/whatever any political position.
If the IOC really wanted to punish Russia for their policy (and I reeeeeally doubt this would ever happen), they could ban them from participating in their own games. That would be extremely embarrassing for Russia, puts the right kind of pressure on them, and is really the only workable solution. But as I said, highly unlikely.
Even though I doubt it changes Russian minds (probably pushes them more into an isolationist attitude), I like this idea. It's the only feasible way the IOC can take a stand.
But just wait for those protests...