etcdserver: add checking when apply conf change

1. The canonical usage of `defer` is to do unlocking or some sort of small cleaning up. I want to avoid using it for other purposes where we can. 

2. It is not about the lines of the code. It is all about logic. We want to consolidate the the error handling and checking logic to one place.