Implemented post pagination.

1. We don't want to send thousands of posts to each user, we want to paginate our posts.
2. Tell server-side how many posts we want to see → http://localhost/25
3. Move subscription code from the router level to the route level (like we did in Comments).
  1. Path: '/:postsLimit?'  // The '?' means this parameter is optional.
  2. '/:postsLimit?' will match EVERY possible path! So this should go after more specific routes like /posts/:_id
  3. So we waitOn our posts subscription, passing along the postsLimit
4. Set data context as well → Previously we've returned a cursor here, but instead we can return a JS object which lets us create a named data context. 'posts' rather than 'this.
  1. This replaces the need for our posts_list template helper which got all posts and set it to 'posts' on the data context.
4. Create a route controller
  1. A route controller is a way to group route features together in a nifty reusable package that any route can inherit from.
5. Create nextPath helper in our data context (in router) → This will be the route to add 5 more posts. ('/15'). Just a string. We show the load more button if the number of posts we have === the limit, if that happens we assume there is more. So this works UNLESS we ask for 5 and get the LAST 5.
6. PROBLEM – each time we click 'load more' and router asks for more posts, we're sent to the loading template while we wait for the new data to come in. Result is we're sent back to the top of the page every time and need to scroll back down.
  1. SOLUTION: iron-router-progress package
    1. mrt add iron-router-progress
    2. This works out of the box for all our routes, but disable it for submit since it doesn't need to wait for any subscription data.
    3. Cool! Green progress bar along the top of the page.
7. Single Post → Create new publication for a single post and subscribe to it in postPage and postSubmit routes.