Simplify Attributes::TypeV4.validate
Unnest `Attributes::*.validate` method bodies

Many/most began with a guard against the data type; this just lessens
some of the rightward drift to make them slightly more approachable and
and reduce the CodeClimate complexity score a bit.
Implement multipleOf atop divisibleBy
Derive IP{4,6} from parent IPAttribute
Reduce flog score for Validator#build_schemas
General attributes/*.rb refactor

Mostly extractions to local variables or minor unnesting.
Derive PropertiesV4 from Properties
LimitAttribute: min/max{Items,Props,Length,...}

The code in `limit.rb` is a bit insane and over-abstract now, but I'm
trying to keep the same classes in place for now so that I don't
simultaneously have to rewrite a ton of Schema::Draft1, ::Draft2 etc.
Simplify common inner-schema pattern
Derive DependenciesV4 from Dependencies
Remove unused locals and unneeded each_with_index
Simplify conditional in AdditionalItemsAttribute
Merge pull request #172 from pd/better-climate

General cleanup, mostly focused on attributes/*
Use Addressable gem for URI handling
Test against maliciuous relative links
Explicitly tell rubies about UTF-8
Move addressable dependency to gemspec
Use to_s to trigger URI validation
Adjustments to refactored URI building/fetching
Use File.read for local files