jira-integration: Add missing protected constructor to JiraConfiguration

Missing protected constructor in order to avoid wrong usage of the class (maybe
someone could try to do "new JiraConfiguration()" instead of
JiraConfiguration.create()).

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Add information about JIRA issue

Include link to JIRA issue in
org.libreplan.importers.IJiraOrderElementSynchronizer.getAllJiraLabels().

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Changed params order in IJiraOrderElementSynchronizer.syncOrderElementsWithJiraIssues

This makes it coherent with method in IJiraTimesheetSynchronizer.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Move code prefix for JIRA entities to a constant

As the same prefix is used in several files it has been defined as a constant in
JiraConfiguration.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Avoid getConfigurationWithReadOnlyTransaction as transaction was already opened

JiraOrderElementSynchronizer.getAllJiraLabels() is marked as transactional, so
getConfiguration() is enough.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Avoid 3 queries to get JIRA configuration from database

Extracts JiraConfiguraion to a variable and uses it to get the data. This will
do only 1 database query.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Move path for search operation in JIRA REST API to constant

As this path is used in several classes it has been moved to a constant in
JiraRESTClient.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Fix typo in syncProgressMeasurement method name

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Prevent error if found OrderElement is not a line

There was a cast without checking if the OrderElement was or not a line, so it
could cause exceptions in some cases.

On the other hand the OrderLine gotten or created in
JiraOrderElementSynchronizer.syncOrderLine is used in the next methods too.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Use EffortDuration to calculate estimated and logged hours

EffortDuration already provide methods to convert seconds in hours and to divide
EffortDuration values.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Change way to calculate estimated hours

Estimated hours are now calculated using the following formula:
* If there're remaining hours:
  Estimated hours = Remaining estimated hours + Logged hours
* Otherwise:
  Estimated hours = Original estimated hours

Moreover the calculation is done now just once, and after the logged hours one.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: General refactorization JiraOrderElementSynchronizer.updateOrCreateProgressAssignmentAndMeasurement

Different stuff has been fixed in the method:
* Some parts were moved inside the ifs, as they were only needed for newly
  created entities.
* Some unneeded lines were removed:
  * directAdvanceAssignment.setOrderElement as this is already done by
    orderElement.addAdvanceAssignment.
  * advanceMeasurement.setAdvanceAssignment as this is already done by
    directAdvanceAssignment.addAdvanceMeasurements.
* The progress PERCENTAGE is marked as spread to make sure that the task appears
  as finished.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Inline startSync method

startSync is private and only used from syncJiraTimesheetWithJiraIssues. So it's
not needed.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Add messages to the user if default data is not found

Add information for the user if required work report type or type of hours are
not found.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Add new field jiraConnectorTypeOfWorkHours in JiraConfiguration

* The new field is added in JiraConfiguration similar to field
Configuration.personalTimesheetsTypeOfWorkHours.
* Added required bits for Hibernate mapping and Liquibase database changes.
* Modified Jira connector configuration UI to include the new field.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Modify bootstraps in order to set JiraConfiguration properly

* Renamed PersonalTimesheetsTypeOfWorkHoursBootstrap to
  ConfigurationTypeOfWorkHoursBootstrapa in order to set up TypeOfWorkHours for
  both personal timesheets and Jira connector.
* Modified ConfigurationBootstrap to ensure that the JiraConfiguration is
  created properly.
* Removed unneeded code in ConfigurationModel.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Add checkings to prevent remove or disable type of work hours for JIRA connector

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Use the configured TypeOfWorkHours in JiraTimesheetSynchronizer

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Avoid whitespace in code use "-" instead

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
jira-integration: Several refactorizations in JiraTimesheetSynchronizer

* Extract save part to a separated method as syncJiraTimesheetWithJiraIssues
  doesn't deal with workReportModel and it could cause misunderstandings.
* Move some parts just needed for newly created objects inside the ifs.
* Use properly EffortDuration to create a new one from seconds.
* Avoid find in another transaction as transaction is already opened.

FEA: ItEr77S16JiraAndTimConnectorContributionIntegration