Support for flexible output

1. Sends output to Drafts if the user has the app.
2. Writes the file otherwise.
3. Prints if everything fails.

Note: Tested on desktop only.