add compile() and isPartOf() functions
handle push request more selectively

When receiving a push request from a given server, and multiple servers
are configured, there is no need to contact all of them.
rename resolv() to resolve()