Add another CNetAddr constructor which accepts boost::asio::ip::address

By merging the independent BoostAsioToCNetAddr() function, this makes things a little bit more straightforward and clearer I think.

Has mentioned in previous PR  (https://github.com/bitcoin/bitcoin/pull/4299) which intended to collect feedback.

Signed-off-by: Huang Le <4tarhl@gmail.com>