Lesson44 - "Optimistic locking"

0. Into tables `Employees`, `Departments` and `Projects` added column 'Version', which indicates the version of the object
1. Into model classes (Employee, Department, Project) added field 'int version' + getter и setter for this field
2. Into RowMappers, binding with model classes, added mapping for object's versions
3. Changing signature of 'delete'-method in GenericDao -> adding version as parameter --> overriding 'delete' methods in Dao-classes in such a way that they depend on the version of the object
4. Changing 'update'-methods -> now they depend on objects versions and inc version on 1.
5. In any methods, anyway change the state of an object in the database, add the version number - for inspection and modification.
6. Changing signature of 'delete'-method in ServiceInterface
7. "Cleaning" EmployeeService -> remove unnecessary methods added readOnly transactions where necessary
8. Adding 'version' into Controllers

--- To be continued.