1043: $expand fails when the navigation property being expanded is null.

There are two issues here.

1) If the expanded navigation property is null, we still get it as
SelectExpandWrapper<>. This is because entityframework cannot create nulls
of non-entity types. Fixing this by adding a property to tell if the
expanded property is null for expanded properties.

2) If there is a projection on the expanded navigation property, i.e lets
say $select=Customer/ID&$expand=Customer and Customer is null,
entityframework projects Customer/ID as null and tries to assign it to an
int (as ID is an int). It fails in the materializer. Fixing this by
promoting non-nullable properties to nullable properties in the generated
query if null-propagation is not enabled (EF scenarios).