Add BenevolentToHash serializer

to be able to parse loosely structured Hash-Array structures into
given Algebrick Types. E.g.

Person = Algebrick.type do |person|
  person::Name = type do |name|
    variants name::Normal   = type { fields String, String },
             name::AbNormal = type { fields String, String, String }
  end

  person::Address = type do |address|
    variants address::Homeless = atom, address
    fields street: String,
           zip:    Integer
  end

  fields name:    person::Name,
         address: person::Address
end

can be parsed from:
{ name: %w(a b), address: 'homeless' }
{ name: %w(a b c), address: 'homeless‘, metadata: :ignored }
{ name: %w(a b c), address: { street: 'asd', zip: 15 }