Allow setting the software name from constructor

There are scenarios where it could be advantageous to allow for
setting the software name from code. An example of this would be when
you are able to distill the configurations of many similar software
configurations into one. In particular, I have a number of Python
projects which will always be built the same way, the only difference
being that the source, version and name might be different. Overriding
the source and version are already easily managed. Overriding the name
is not as it is often referenced elsewhere in the config file.

Therefore, in order to allow developers to keep their configs as DRY as
possible, this change allows one to optionally set the software name at
object construction.