Minor general improvements
- Types are tidied up throughout.
- An argument list is always nullable by default.
- Composer is used to handle semantic version numbering.
- An empty string is returned when no user input is detected (rather than
null
). - Dependencies bumped.