[FEATURE] Initial commit

Contains the domain models Image and ImageVariant, a basic
ImageRepository and an ImageService that acts as a wrapper
for the image manipulation library "Imagin". See
https://github.com/avalanche123/Imagine/

Change-Id: I1c7bb710a4150f34b52c79b87f1f3f1ec5ae1796
[TASK] Add initial migrations to package

Change-Id: I9647177e700a0151d7662a9eb8435e70e0a08b63
[TASK] Add license file to Meta folder

Change-Id: I5164734ffbbf1c819ed770ee78c2ea4973318207
[TASK] Comment, docblock, CGL fixes...

Change-Id: I0764aeb6563efae3ea1eb74376df20f2a50c6bdc
[TASK] Render file only if needed

The image file will be rendered only if it doesn't exist yet.

Also simplify some code and raise the length limit for image title
from 100 to 255 characters.

Change-Id: Iccb19d200b363d240902071c5cba7aa9b9904797
[TASK] Fix foreign key handling in migration

Migrating down would not work because FK constraints where not named.

Change-Id: I16327afe40d397ecc93c3d366a9fb25d9f7e3ba2
[TASK] Simplify license header in PHP files

Change-Id: Ie5a7640d5dfb71c7140f1ca660d1a6123696e0fe
Related: #29415
[TASK] Adjust to new annotation syntax

The syntax for annotations changed with #27627, this adjusts the
code as needed.

Change-Id: Iff90fcebce4f77b14e6af50189673c4ccecae189
Related: #27627
[TASK] Fix Class headers

The comments still referred to package "Media"

Change-Id: Icf7a4fe0bcfd4ff24ef4ae99e480727a662d8b0d
Related: #27490
[FEATURE] ImageConverter

This implements a simple TypeConverter for the Image object.

Change-Id: Ie64fc60c1ca9b386248c296218eb4bad68cca0b3
Resolves: #33447
Merge "[FEATURE] ImageConverter"
[FEATURE] Additional orientation-related functions for Image

Providing functions to get information about the orientation of the image.

Change-Id: I26f8dcf8d0abc9051f63185853b503fed7dd0ab7
Related: #31334
[BUGFIX] Persisting image throws Exception

The imageRepository was not of type Singelton but is a property of
the image domain model. That's why the GenericObjectValidator
tried to validate it.

Change-Id: I7122cf0e2778c07a0e0c0a419004d1e66435b565
Fixes: #33564
[FEATURE] Validators for image size, type and orientation

This adds three validators for image size (resolution), type
(IMAGETYPE_*) and orientation (square, portrait, landscape).

Change-Id: I3b72feb277aa591f1d2da8a03d238aef2e05a31f
Resolves: #33181
[BUGFIX] Fixes functional test tearDown() use

In tearDown() one must call parent::tearDown() as well,
otherwise following tests break in weird ways.

Change-Id: Ifb85687a61ace3fa2bdf56959ab0515a102efa4c
Fixes: #33766
Merge "[BUGFIX] Fixes functional test tearDown() use"
[TASK] Fix doc comments

Fixes doc comments issues, like missing or wrong @param
annotations.

Change-Id: I54cb0b191c285813f0deeda55b7e4b49f664d753
[FEATURE] Image ViewHelper

Provide Image ViewHelpers that are able to render <img>
tags and image paths to possibly resized variants of the
given Image object.
Usage:
<m:image image="{imageObject}" maximumWidth="80" alt="sample" />
{m:uri.image(image: imageObject, maximumWidth: 80)}

Change-Id: I4b99540de9b9e60bf41c86cb12e3dd7339146f97
Resolves: #33413
[TASK] Adjust columns to NOT NULL default.

Change-Id: Ie38c59689e3ded10c3915cd6a18cd0ff48341a08
Related: #35059
Releases: 1.1
[TASK] Add DB migration for PostgreSQL

This adds an initial migration for PostgreSQL to create the needed
schema for the package.

Change-Id: I8ba073b1996a8aeb2c7da7d82642060b860ceb78
Related: #36301