Remove optimization for grounded MJD

If MJD is ground, clpfd is already able to calculate a precise Year,
Month and Day.  We don't need to help it out.  The formulas we have are
already sufficient.
Help clpfd contract MJD domains more tightly

Before this commit, form_time(1999-_-_, datetime(MJD,_)) gave the
constraint

    MJD in 50873..51603.

However, the end points of that range give dates outside of 1999.  After
some discussions with Markus Triska about improving clpfd's propagation
rules for mod/2, I realized that I have a much more efficient way to
help clpfd contract that domain.

For a given year, January 1st is always the first day and December 31st
is always the final day.  As soon as we know the year, calculate MJD
values for these two boundaries and constrain MJD to stay between them.
Now the form_time/2 example above gives this constraint:

    MJD in 51179..51543.

That's exactly the range of values possible for 1999.  This little bit
of extra propagation might also help other constraints resolve more
tightly during propagation.

As noted in the code and comment, we don't run this optimization when
both Year and Month are known.  In that circumstance, clpfd is already
able to constrain MJD to the precisely correct domain.  In that
scenario, the "optimization" actually made some test cases twice as
slow.