Rewrite functional requirements

Addressing issue: https://github.com/sysapps/notes/issues/6

Note: this PR includes commits from the other three PRs.