Some more cleanup in update_site() for your consideration...

First of all, thank you kindly for your quick responses to my issues / pull requests -- very much appreciated!

When I saw your commit come through last night I had already made a few of my own.  I figured I'd pass them along in case you wanted any of them...

1. Enforce proper slashiness of network domain and path (I'd advocate the same behavior for `add_site()`)
2. My approach to the blog path overwrite issue I original reported (very similar to yours)
3. Switched to using `switch_to_site()` / `update_option()` in favor of `update_blog_option()` for updating URL dependent blog options

The last one has a few benefits:
* Cleaner way to get options table name for each blog
* The call to `refresh_blog_details()` fixes an issue we had where the root site blog caches were not being cleaned if you updated the network domain / path from within the network that was being updated (you can see why inside of `update_blog_option()`).  This is especially problematic when using a persistent object cache backend.
* Core is pushing to deprecate `update_blog_option()` (http://core.trac.wordpress.org/ticket/21432)

Take em' or leave em'!