Updated content directory structure, content management workflow, and plugins

Content Directory Structure

- Removed contents/articles directory in favor of a contents/notebooks 
  directory. Notebooks will contain directories that represent a skill (you can 
  think of this as a category). Each skill directory will contain a set of 
  directories that represent a notebook. Each notebook directory will contain 
  files for notes. Therefore, the new content directory structure is as follows: 
  notebooks/skill/notebook.
- Comments directory now contains skill and notebook within the directory title.  
  This will help in determining the location of the associated post and keeps 
  the comment directory name parseable for any necessary purpose.
- Updated all plugins to use the new notebooks directory structure
- Updated plugins to ignore non-published posts
- Added plugins that were previously listed as dependencies in package.json for 
  custom functionality (to match updated directory structure).

Content Management

- Drafts no longer have their own directory. Instead, a value is placed in the 
  YAML front-matter for the "published" field. If the value is 0, the post is 
  considered a draft and is not published when the site is generated.  If the 
  value is 1, the post is considered published and will be generated.  
  wintersmith-robotskirt plugin handles draft and published articles by ignoring 
  articles who have "published: 0" in the YAML front-matter.
- The "grunt post" task now has several different features. To create a post, 
  three arguments must be passed- the target skill, the target notebook and the 
  filename. Filenames no longer have to contain the date, but they may. Journal 
  entries will be given dates at the beginning of the filename. If a post 
  already exists, it will simply open in the specified editor. By default, all 
  posts will be drafts.
- The "grunt publish" task has been updated. You can constrain the list to 
  various levels of specificity to view articles that can be published. If you 
  specify no argument, all unpublished articles will be displayed. You can 
  constrain this list by specifying a skill or a notebook. If you specify the 
  title, the post will be published. Publish will also ensure all necessary YAML 
  fields are set prior to publishing (if any of these fields are missing, site 
  generation may fail).
- "grunt unpublish" task has been added. This is similar to the "grunt publish" 
  task, but instead of publishing a post, it will unpublish a post.
- "grunt yaml" task has been added. This task will do a bulk update of a single 
  YAML key-value pair in all posts at a specified level. You can bulk update 
  absolutely every post, every post in a skill directory or every post in a 
  specific notebook within a skill directory.

Plugin Updates

- Fixed bug in paginator plugin- the site would not be generated if no posts 
  existed. The bug was due to an undefined object (rv) when no posts were 
  present. This was fixed by passing a null argument to signal an empty 
  paginator page. This is then checked by the template which displays a message 
  stating no content exists yet.
- Created separate methods for paginator plugin for improved code readability.
- Updated wintersmith-tags-plugin to return a list of skills so that templates 
  can check against this list (the list is defined in config.json). This way, 
  skill tags are distinguishable from standard tags.
Removed environment change functionality.

This functionality is no longer used in favor of the "published" field in the 
YAML front-matter of all posts.
Removed capistrano from Gemfile dependencies

Capistrano will no longer be used for deployment in favor of keeping application 
deployment separate from the project codebase.
Updated website layout to include skills data

- Updated ratings to display a "not rated" message if a rating tag does not 
  exist
- Added skills section to posts and the sidebar. The sidebar will contain a list 
  of all skills defined in config.json. These skills will link to tag indexes 
  containing all posts published under that skill. Each post will display the 
  skill name at the top left corner. This will also link to the corresponding 
  tag index.
- Tag indexes containing all posts published under that skill.
- Reorganized sidebar content
- Updated feed template to check for existence of articles prior to attempting 
  to output a date. If no articles existed, this would previously break site 
  generation.
- Updated sass and html design to accomodate the new skills data