Add and edit projects via UI

- UI changes for the editable proejcts.
- Add PUT and check if allowed for projects.
- Fix check for allowed projects.
- Add red asterisk to required fields.
- Tidy up bootstrap components and add validation alerts.


NOTE: 
Issue 1: At the moment we add :admin and :editable keys to projects (when checking if the user is allowed to add/edit projects) but this only works if there are existing projects for that programme. We need a way to mark the user as being able to do the above if there are no existing projects. Possibly by adding :manager or something similar to the programmes when doing GET, and then keeping that information in the app state for the projects table to use.

Issue 2: fetch-projects is used in both post-new-project and post-edited-project. It refreshes the list of projects when post-edited-project is used, but not in post-new-project. The look the same to me, with the only difference being POST/PUT.