Refactor CookieStore

- Extend CookieStore from CookieContainer.
- Use JSON.NET to serialize / deserialize CookieCollection object.
- Use Reflection to access to the cookies field of the CookieContainer
- Rename Commit() to Save()
Refactor Replication.GetCookieContainer()

Change Replication.GetCookieContainer() to a read-only CookieContainer
property.