Instead of implementing our own templating system, we abuse org-capture's templating system. We add 2 additional properties:
- :head: a starting template that goes at the beginning of the file.
- :file-name: a string that expands to the file name
The templates are customizable at `org-roam-capture-templates` and `org-roam-ref-capture-templates`.
Add 2 custom handlers:
1. roam-file?file=path: this simply opens the file at path in Emacs.
2. roam-ref?ref=ref&template=roam-template&title=title&...: attempts to open a roam note with a given ROAM_KEY. If the note doesn't exist, create one. Else, open it.