rewrite DateTimeImmutable to not extend DateTime

see also Efficient Enterprise Java: Prefer Aggregation over Inheritance

closes #1
add return type annotations proposed by scrutinizer