Improved error handling

Some of this is a bit rough-and-ready - you may want to keep using ConnectionException - but I was able to track down (well, sort of) proxy config problems much more easily once I'd changed the code so that:

(a) If it can't find a Fly server, FlyFinder throws an exception (rather than returning null)
(b) FlyFactory throws a FlyAccessException (so that it can attach the cause of the error)

Regards,

TS