:lipstick: Refactor service management

When deploying, a request is now made to the Docker Registry to get the latest
image of the service. The generated serviced file is then locked down to that
image version/tag.
Merge branch 'master' into tie-service-version-down
:lipstick: Rename ServiceBuilder to UnitBuilder

At the moment services mean both cordage services and fleet services.
Fleet services should be referred to as units to prevent confusion.
Maintain unit count between deployments

When deploying, there is now a check to see how many units there are
from previous deployments. The same amount of units are then deployed
for the current deployment.
Merge branch 'master' into tie-service-version-down
:lipstick: Add Unit class to represent a fleet unit
:lipstick: fleetctl.listUnits should return Unit instances
:lipstick: Add Unit.belongsTo

Unit.belongsTo has now replaced Service.fromUnitName
Maintain unit count between service versions

When deploying a new version of a service, the same amount of units will
be deployed as there were for the previous version with the most units
running.
:white_check_mark: Improve tests for Unit and Service
:memo: Improve code documentation for deployment task
Merge pull request #14 from madjam002/tie-service-version-down

Refactor service management / service versions