Change control logic to include case where name is present

- A strange case like "John Doe <>" will result in the
  parser returning a name but no email
- When the random email is not generated then the analysis
  pass will break when it sends the post message to the id
  service with no email

- If a name is given but an email address is not then we
  previously would not enter the else statement where a random
  email address is generated and assigned

Signed-off-by: Mitchell Joblin <mitchell.joblin.ext@siemens.com>
Reviewed-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Automatically generate analysis time windows

If the configuration file does not specify explicit releases to
construct the analysis timeline, use intervals of 3 months.

[WM: Add patch description]

Signed-off-by: Mitchell Joblin <mitchell.joblin.ext@siemens.com>
Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Save configuration file to temp location

- In the case of manipulating configuration values after loading
  the configuration file we need to save the changes because
  other analysis phases again read the configuration file

- We now save the project configuration file to a temporary
  location since we don't want to overwrite the original

- The project file location variable is then changed to this new
  temp file so that future reads will be on the manipulated
  values, not the originals

Signed-off-by: Mitchell Joblin <mitchell.joblin.ext@siemens.com>
Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Exit cluster analysis if Adjacency matrix is empty

- There is no reason to proceed when there is no edges
  in the adjacency matrix

- Furthermore, when no edges are present the analysis breaks
  when trying to save the empty graphs

Signed-off-by: Mitchell Joblin <mitchell.joblin.ext@siemens.com>
Reviewed-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>