Create a Task object to represent a real world task

Hashes can be used as a good stand in for object for a while. It is good practice
to create classes to hold that data because it gives that group of attributes a name.

Naming things is a good practice to get into. This will also give us a place to put
methods like #complete! so the user of this class doesn't have to know how we store
the complete state of this class.
An example of how map relates to each

This commit is simply here to illustrate how the #map method relates
to the #each method in Ruby. This is not a commit I would break out in
real life.