Catch generic Fog exceptions for retry when using fleet.start

Previously we had been seeing multiple exceptions to do with AWS transient
failures:

    #<Fog::Errors::Error: Reload failed, Fog::Compute::AWS::Server i-7b97ba49 went away.>
    #<Fog::Compute::AWS::Error: RequestLimitExceeded => Request limit exceeded.>

This patch wraps the call to fleet.start in a retry wrapper, returning retry
count status each time, a random sleep (to work around API request limits)
and finally the ability to throw the original error if the exception
continues.

I see this as an initial start to adding resiliency to this problematic area,
to at least cater for the majority of our errors for now.

Signed-off-by: Ken Barber <ken@bob.sh>