Feature/issue 352 get session and checkpoint when retrying replication

NOTE: This PR depends on #363 (issue number #299)

Fix #352 Get session and checkpoint when retrying replications

- This fix depends on the fix of #299
- Case 1 - By fixing #299, case 1 is also addressed.
- Case 2 - iOS version: stop replicator immediately when setError() was called with permanent error. But, for Core Java version, stop replicator when state becomes IDLE.
              -  Two test cases which calls /{db}/_all_docs are broken if stop replicator for HTTP error 406, because test case does not implement /{db}/_all_docs. Because of this, current version eliminate 406 http error from permanent error list.