Simplify and extend test suite slightly
Factor out and improve error handling for all request methods.

Use carp instead of die so calling location is shown.

Error responses now produce a detailed error that includes the method
(GET/POST/DELETE etc), the url, the request content (if any) and the
response content (if any).

Error handler can be specified for particular http status codes,
like 400 from search.

Removed some duplicated code from close_issue while I was passing.
Word-wrap the pod. Makes future doc patches much easier to follow.
Add $jira->trace(1) to log all requests and responses

Turned ua() into a setter as well as a getter while I was in the area.
Made transition_issue much more flexible and robust and informative on error.

Added corresponding docs and tests.
Assorted relatively minor documentation updates.
Add optional $fields param to create_issue. Add test.

This is very handy to ensure an issue gets created as needed in a single
round-trip. It's essentail if a case can't be created without certain
fields being set.
Extend, unifiy and document the handling of 'update hashes'

The update_issue method now supports both simple field setting
and more complex field update edits.

The close_issue now also supports $update_hash.
Improve _get_transition_id error reporting, especially if no transitions available.

eg TEST-25 has no transition or reachable status called 'Closed' (available transitions: <none>)
Merge pull request #4 from timbunce/timbunce-errors-updates-docs

Tim Bunce: patches for errors updates and docs (fixes RT 96887, and RT 96891)