Ensure that when an IOException occurs we shutdown metaserver.

The reason for this is that when an error happens in the
io_service, we can't know if it's a fatal error or not.
In order to maintain functionality, shutdown is required.
This was discovered as part of the following bug 
https://bugs.launchpad.net/ember/+bug/1201200