Clearer message form demo_user
Notify user when a default config file is created

From time to time it'd create a default config even when I'd specify a
config path because the config path would not exist because of a type.
In these cases any of the tools using config would silently created a
config with default values in them, which is not what I expected.  Now
config tells you when it is creating a config file and also shows the
content of the file.

Also the print function to be used can be injected while instantiating
config.
Add goals

Goals is a separate table where you set your goals with a starting date,
end date, work-type and the number of hours you want to achieve before
the end date. It creates a Goals table to keep track of goals.
Everytime it shows you goals, it checks how many hours you have put in
since the starting of the goal and how much you still have to do and
what will be the average per day rate to achieve the goal.
Fix help option with argparse

argparse does not show the arguments and options that are added in main
functions when invoked with --help. The reason for this is that it exits
after parse_known_args. To fix this create a new ArgumentParser in main
function and make the earlier instance of the ArgumentParser as its
parent.