hostserv/offer: refactor and search for pre-existing offers (closes #298)