Implement training_notes list.

Now training_notes are a list to which you can add any number of notes
with add_training_notes. The print/write_training_program() methods have
been updated to accomodate this change.
Fix path issues as pointed out by @DeliciousNukaCola.

os.chdir() can't change to an empty string value, which is what was
being returned under certain circumstances.

Instead, training program has been updated make a note of the location
of the module at runtime, used to figure out where its support files are
located.

Also, it now writes its output to the current directory rather than the
module's directory, which is probably what you wanted when you ran it
from outside of the project directory in the first place.