Caching projects list and making project available by name

Caching the list of project names and id's on the call to projects in a file named projects.json.

Adding a new argument to match a project name to it's id from the projects.json file. This is a wildcard match, if it finds exactly one matched project then it will work correctly, otherwise it will print that too many/too few projects were found.

```bash
python main.py time -n sidestudios -m "Did work" -t 2.0
```