Repository: JsonMapper/JsonMapper (php)

Issue:
The TypedProperties middleware incorrectly marks private array $friends as nullable.
**Describe the bug**
The TypedProperties middleware incorrectly marks private array $friends as nullable.


**To Reproduce**
While running the following code through the types properties middleware the `friends` property is marked as nullable. When trying to access the property from a new instance an error is thrown: `Typed property JsonMapper\Tests\Implementation\Php74\Popo::$friends must not be accessed before initialization` indicating this isn't allowed null.
```
<?php

declare(strict_types=1);

namespace JsonMapper\Tests\Implementation\Php74;

class Popo
{
    public string $name;

    public array $friends;
}
```

**Expected behavior**
The `friends` property (which is an array of mixed) should not be nullable as there is no explicit null mark (?).

Pull request description:
Fix nullable property when type declaration is array
Would fix #63 

Patch:
diff --git a/src/Middleware/TypedProperties.php b/src/Middleware/TypedProperties.php
index 0c8da3a..d63b734 100644
--- a/src/Middleware/TypedProperties.php
+++ b/src/Middleware/TypedProperties.php
@@ -46,13 +46,14 @@ class TypedProperties extends AbstractMiddleware
                 continue;
             }
 
-            $propertyType = $type->getName() !== 'array' ? $type->getName() : 'mixed';
+            $isArray = $type->getName() === 'array';
+            $propertyType = $isArray ? 'mixed' : $type->getName();
             $property = PropertyBuilder::new()
                 ->setName($reflectionProperty->getName())
                 ->setType($propertyType)
-                ->setIsNullable($type->allowsNull() || $propertyType === 'mixed')
+                ->setIsNullable($type->allowsNull() || ((!$isArray) && $propertyType === 'mixed'))
                 ->setVisibility(Visibility::fromReflectionProperty($reflectionProperty))
-                ->setIsArray($type->getName() === 'array')
+                ->setIsArray($isArray)
                 ->build();
             $intermediatePropertyMap->addProperty($property);
         }


Test patch:
diff --git a/tests/Unit/Middleware/TypedPropertiesTest.php b/tests/Unit/Middleware/TypedPropertiesTest.php
index c182116..ad88af7 100644
--- a/tests/Unit/Middleware/TypedPropertiesTest.php
+++ b/tests/Unit/Middleware/TypedPropertiesTest.php
@@ -44,7 +44,7 @@ class TypedPropertiesTest extends TestCase
         self::assertThatProperty($propertyMap->getProperty('friends'))
             ->hasType('mixed')
             ->hasVisibility(Visibility::PUBLIC())
-            ->isNullable()
+            ->isNotNullable()
             ->isArray();
     }