Release version 4.0.0

Breaking changes
================
mapm 4.0.0 has switched from my terrible manual parser to the clap library.
Currently, no autocompletion is present, that is intended for the next minor
release (4.1.0).

Important
---------
This applies for the view, find, and preview-all subcommands.

Flags and arguments were reversed. (Note that view, find, and preview-all are
not flags or arguments; they are subcommands.)

This means hide and show are flags, and the arguments that get passed to it are
not. So instead of typing

	mapm view --alexander-balls hide --solutions

you would type

	mapm view alexander-balls --hide solutions

Probably irrelevant
-------------------
It was previously technically possible to pass flags after each argument in `mapm preview`, although it served no purpose. This is no longer possible.

New features
============

Subcommands
-----------
The subcommands `mapm rename` and `mapm delete` have been added.

Pre-install script
------------------
mapm now has a pre-install script, which will automatically create the
appropriate config directories, and populate your system with a default
preview template and script if they do not already exist.

It will also create an appropriate preview-all script.

Post-build scripts for contests
-------------------------------
There is a new directory that mapm creates, `~/.config/mapm/scripts`.
You can create scripts corresponding to template names that execute
commands in the working directory of the contest after building. For
example, if I wanted to execute

	xdg-open *.pdf

in the `mat` template after building, I would put that in the file
`~/.config/mapm/scripts/mat`.

This also works for the `preview` and `preview-all` commands, with the
appropriate script filenames being `preview` and `preview-all` as well,
respectively.

QOL
===
You can now edit multiple files at a time with mapm edit by passing in multiple arguments.

`mapm profile list` is a valid subcommand now, and it will list all your mapm profiles. This is determined by the list of directories in ~/.config/mapm/problems (and equivalent for non-Linux OSes).

You can also pass in an argument after `mapm profile set` now, and
instead of opening up an interactive prompt, it will directly set your
mapm profile to whatever argument you passed in.