Raise ActiveRecord::CannotConnect on adapter connection errors

It'd be nice with an adapter-agnostic exception class for connection-class errors. This is useful for falling back to e.g. another connection (readonly in my case) or a fallback value in case AR cannot connect to the database.

If there's interest in this, I can look at adding this for some of the other adapters (e.g. `sqlite3` and `postgres`) and look at more errors (e.g. inability to route, timeouts, unknown host, unknown error, etc.). 

@arthurnn @tenderlove 
How about port 10, say? An [unassigned](http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml) port from the low end of the System Ports range should be about as safe as you can get: no chance it's been dynamically opened by something, and when people squat on well-known ports, they normally pick higher ones.