Issue title: Extra Call
 Issue body: It seems like #77 is not fixed. First time `getPosts` is called when we do server rendering, and second time when we call it from `componentDidMount` in `PostListPage`. But we can't remove it from `componentDidMount`, for example if we load `PostDetailPage` and then go to `PostListPage` we'll have only one post.
 Comments: 
 Comment 0: One way to solve it is to set a flag like `allPostsLoaded` in the reducer when `ADD_POSTS` action is called. This way we can check for this flag and conditionally load `getPosts` in `componentDidMount`.

I'm down to merge a PR for this.
 Comment 1: I think that's a kludge.  The right way is probably to use window.__PRELOADED_STATE__  as stated at http://redux.js.org/docs/recipes/ServerRendering.html
 Comment 2: It may be a good idea to have it just not execute the first `getPosts` in `componentDidMount`, that way if a user navigates away from the route client side and changes occur in the data, it would still execute if/when the user navigates back client side.
 Comment 3: @somus if this is still an issue, I'd love for you to take a look at this and do a PR. 
{'source': 'GithubIssues', 'repo_name_with_owner': 'Hashnode/mern-starter', 'issue_id': 175695385, 'repo_stars': 5925.0}