Refactor julian date

  * Moved `LeapSecond.leapSeconds` to `JulianDate.leapSeconds`.
  * Refactored `JulianDate` to be in line with other Core types.
    * Most functions now take result parameters.
    * The default constructor no longer creates a date at the current time, use `JulianDate.now()` instead.
    * Removed `JulianDate.getJulianTimeFraction` and `JulianDate.compareTo`
    * `new JulianDate()` -> `JulianDate.now()`
    * `date.getJulianDayNumber()` -> `date.dayNumber`
    * `date.getSecondsOfDay()` -> `secondsOfDay`
    * `date.getTotalDays()` -> `JulianDate.getTotalDays(date)`
    * `date.getSecondsDifference(arg1, arg2)` -> `JulianDate.getSecondsDifference(arg2, arg1)` (Note, order of arguments flipped)
    * `date.getDaysDifference(arg1, arg2)` -> `JulianDate.getDaysDifference(arg2, arg1)` (Note, order of arguments flipped)
    * `date.getTaiMinusUtc()` -> `JulianDate.getTaiMinusUtc(date)`
    * `date.addSeconds(seconds)` -> `JulianDate.addSeconds(date, seconds)`
    * `date.addMinutes(minutes)` -> `JulianDate.addMinutes(date, minutes)`
    * `date.addHours(hours)` -> `JulianDate.addHours(date, hours)`
    * `date.addDays(days)` -> `JulianDate.addDays(date, days)`
    * `date.lessThan(right)` -> `JulianDate.lessThan(left, right)`
    * `date.lessThanOrEquals (right)` -> `JulianDate.lessThanOrEquals (left, right)`
    * `date.greaterThan (right)` -> `JulianDate.greaterThan (left, right)`
    * `date.greaterThanOrEquals (right)` -> `JulianDate.greaterThanOrEquals (left, right)`