Option to not cancel during timeout

Added option to not cancel currently running operation during timeout in `retry_and_timeout` method. This is needed since without it doing LB add/remove using this method can be dangerous. This is because It is possible that add/remove can get cancelled and otter will think that operation did not complete whereas request might've reached LB and operation could've taken place. 

This solution may not be correct. Yet to write tests and confirm. Would love if @wirehead or @cyli can take a look at it.