Made tab length for asMutable and asImmutable match standard Java tab length.
Refactored macro name.
Added protected toString inProtectedAddress.
Added with-methods in mutable state.
Changed toString implementation.
Added one more as-method to AddressCreator.
Immutable list of Address.
Removed potential NPE problem.
Added SpecialAddress (with mutable state).
Make sure the static constructor methods are using correct naming.