Allow using custom address types

This PR allows filtering the address list that gets loaded on `my-addresses.php` and thus, displaying custom addresses. It also adds support for editing and saving those addresses.

There are no user-visible modifications here, only some improvements that allow developers to add new address types.

It also adds a new filter: `woocommerce_checkout_get_value` that allows overriding the default value that gets loaded to checkout form. A use case may be where an address field needs to be loaded from somewhere else than user meta ( I am working on a plugin that needs to do that).