Add an interface to Jadu's API

Use it like this (note that for Jadu's near-live system you'll need to
disable SSL verification because the certificate is incorrect):

    BASE_URL = 'https://etapi.nearlive.moj.fcos.jadu.net/api/1/'

    api = Jadu::API.new(
      BASE_URL,
      verify_mode: OpenSSL::SSL::VERIFY_NONE, # for near-live
      ssl_version: :TLSv1
    )

    puts api.new_claim(xml, 'example.pdf' => File.read('example.pdf')).body

    puts api.fgr_et_office('B5 4UU').body

The API returns a Net::HTTPResponse and does not perform any checking
as yet.
Parse response from Jadu API

Initialise the API:

    api = Jadu::API.new(
      'https://etapi.nearlive.moj.fcos.jadu.net/api/1/'
      verify_mode: OpenSSL::SSL::VERIFY_NONE, # skip verification in near-live
      ssl_version: :TLSv1
    )

Make a new claim request:

    response = api.new_claim(xml, 'example.pdf' => File.read('example.pdf'))

    response.ok? # => true
    response.to_hash # =>
      # {
      #   'feeGroupReference' => '991000185700',
      #   'status' => 'ok'
      # }
    response['status'] # => 'ok'
    response['feeGroupReference'] # => '991000185700'

Make an ET office request:

    response = api.fgr_et_office('B5 4UU')

    response.ok? # => true
    response.to_hash # =>
      # {
      #   'status' => 'ok',
      #   'fgr' => '131000203700',
      #   'ETOfficeCode' => 13,
      #   'ETOfficeName' => 'Birmingham',
      #   'ETOfficeAddress' => '...',
      #   'ETOfficeTelephone' => '0121 000 0000'
      # }
    response['fgr'] # => '131000203700'
Split out Jadu API into 1 file per class/spec
Sanitise filenames to suit the Jadu API
Don't generate multiple underlines together
Improve style a little
Rename do to perform in Jadu API

To avoid potential confusion with do … end in Ruby. I'd probably have
chosen send, but, well, that has a special meaning, too.
Merge pull request #384 from ministryofjustice/jadu-integration

Add an interface to Jadu's API

Initialise the API:

    api = Jadu::API.new(
      'https://etapi.nearlive.moj.fcos.jadu.net/api/1/'
      verify_mode: OpenSSL::SSL::VERIFY_NONE, # skip verification in near-live
      ssl_version: :TLSv1
    )

Make a new claim request:

    response = api.new_claim(xml, 'example.pdf' => File.read('example.pdf'))

    response.ok? # => true
    response.to_hash # =>
      # {
      #   'feeGroupReference' => '991000185700',
      #   'status' => 'ok'
      # }
    response['status'] # => 'ok'
    response['feeGroupReference'] # => '991000185700'

Make an ET office request:

    response = api.fgr_et_office('B5 4UU')

    response.ok? # => true
    response.to_hash # =>
      # {
      #   'status' => 'ok',
      #   'fgr' => '131000203700',
      #   'ETOfficeCode' => 13,
      #   'ETOfficeName' => 'Birmingham',
      #   'ETOfficeAddress' => '...',
      #   'ETOfficeTelephone' => '0121 000 0000'
      # }
    response['fgr'] # => '131000203700'

Also includes a utility class for sanitising filenames according to the API requirements:

    Jadu::API::FilenameSanitizer.sanitize('Wow! A filename!.pdf') # => 'Wow_A_filename.pdf'