feat(join): check cluster conditions before join

It also introduces Client struct for standby usage, which is for #764.