refactor address

I was looking through the source the other day and was trying to make heads and tails of the address class what better way that a little refactoring.

All tests pass on 1.9.3-p547, 2.0.0-p481, 2.1.2, and jruby-1.7.9. (all supported versions of mime-types) I do however run into difficulties testing on 1.8.7-p375.

here is the output  from the failed attempt of 1.8.7

```sh
Gem::InstallError: mime-types requires Ruby version >= 1.9.2.
An error occurred while installing mime-types (2.3), and Bundler cannot continue.
Make sure that `gem install mime-types -v '2.3'` succeeds before bundling.
```

any pointers would be great
Ditto