Unify errors into one rescueable Linkscape::Error

Linkscape can throw many types of errors (thanks to Net::HTTP), and
sometimes it can return a response that is not .valid? ... in consumers
we always check that the data is not nil and rescue all the errors...
this code should be located here in the gem rather than in the many
consumers.

Also, this commit fixes some appearently very broken redirection code
which we probably don't need anyway since Linkscape never redirects
AFAIK.

Not that this means that responses will probably always be .valid? (e.g.
500 errors now throw exceptions instead of returning a non-valid
response). We can probably get rid of the .valid? code and not use it
anymore in any consumers which may use it.

Because of this, and because this commit changes the exceptions which may
be thrown, this commit will break old code, which should be updated to
just rescue Linkscape::Error.