Add .gitignore
First attempt at extracting Notes::Tasks

It is probably useful to have programmatic access to all of the tasks
for a file or set of files for potential integration with other
services. Previously, task parsing and printing to the console were
tightly coupled; this extracts the task parsing into the `Notes::Tasks`
module which returns data suitable for formatting and printing.

No functional changes are introduced.
Only pass in needed options to
First pass at adding Notes::Tasks.for_files

WIP

We are going to want programmatic access to all of the tasks for a given
project, not just a particular file. This is a start at implementing
that through Notes::Tasks.for_files, which will return a hash of
filename -> [<Notes::Tasks], allowing us to refactor the CLI printing
code as well as display results through other interfaces as desired.
Finish using tasks for internal printing. Still need to wire up tests