Added crappy black-box RSpec acceptance test

* Just runs the bin/draw_planner and then gets the md5 checksum of the
  generated PDF
Added Guard, guard-rspec, growl gem
Removed last of bundler gem crap
Broke everything out of driver
Spec now calls Planner.draw instead of system()

* No longer need to test bin/draw_planner for anything except driving
  the library correctly (date parsing, etc)
Added planner_spec now that Planner is testable

* Well, *remotely* testable anyway

* Extracted Planner.munge_start_date with spec
Renamed munge_start_date -> rewind_to_monday

* Eventually I think I want to monkeypatch Date the same way Rails
  does and have something like Date#beginning_of_week but this will do
  for now
Isolated Planner's disk I/O

* This allows testing Planner PDF generation without needing
  (letting!) Planner or Prawn write to the disk

* Had to wrapper File.open to permit test to stub out JUST the
  File.open call made by Planner

* Planner.draw now does 3 things: 1. fixes up the start date,
  2. generates the pdf, 3. saves it to file. It does none of these
  things itself, but delegates to other methods instead; is this good
  enough for SRP? I can kinda see wanting to push the date munging
  else where but I can also kinda see these 3 steps as the effective
  total action of the drawing program
Constantized magic numbers

* Trying to make the code more readable and hence refactorable
Used a map to clean up a 1-dim iteration

* [1,4].each mapped over column width, changed to [1,4].map {|column|
  column * COLUMN_WIDTH } to make it clear that we just want the x
  positions of columns 1 and 4
Added rb-fsevent for guard
Cleaned up Guard routes from Rails defaults
More cleanup in planner.b

* Moved constants to top of class

* Updated loops to be less stateful and more semantically descriptive

* Though I may have taken it too far with the map.with_index example
Added rb-fsevent gem, cleaned up Guardfile
Resolved merge conflicts
Changed (0..FOO) loops to 0.upto(FOO) loops
Condensed graph paper loops to emit x,y vs i

* Eliminates a stateful conversion inside the loop

* Also makes the code fairly beg/grovel/SCREAM for loop generators
  that make sense instead of cryptically compressing everything down
Extracted Date label generation method

* And I even TESTED it, LOL!

* Comment cleanup
Switch DSL version to explicit |pdf| object

* Changed implicit DSL to use explicit |pdf| capture object

* This affected the MD5 checksum, so a careful visual inspection was
  made to ensure that the files are still visually identical even
  though the backing vectors seem to have changed

* Extracted MAGIC_MD5_CHECKSUM up into spec_helper.rb to avoid having
  to change it in the acceptance test as well as planner_spec.rb
Comment