svtools: don't dereference invalid iterator

Can be reproduced by opening Data Sources in Writer and closing
document.

Change-Id: I703ceffee3a1896acd06076d8b77085e8785acd3
(cherry picked from commit 6692eeca9a3ba7a9ba461564172275fbb78992e9)
sd: PPT export: fix assert on 0-length text portions

Not sure if such are legit, but this should fix the crash.

Change-Id: Idf8a3a67ddae464533d431f1a6a2ebea6d6c2213
(cherry picked from commit 34140139840a181157690038fe845f5b33866b10)
fdo#70198: sw: don't truncate Time values on 32bit platforms

SwDoc::SetFixFields() uses sal_uLong to store Time.GetTime() which needs
64 bits.

Also fix same problem on Time fields in HTML import.

(regression from 9830fd36dbdb72c79703b0c61efc027fba793c5a)

Change-Id: I5d0388cbc364e1f9dfb60ff9e83c7d2f101c69d8
(cherry picked from commit 17dab5bf8efb3fd676e6854474b199b681d0dc28)
editeng: fix more 32-bit Time breakage

SfxDateTimeItem and SvxExtTimeField need to use 64-bit integer to store
Time as well.  These classes also have binary serialization
Load()/Save() methods but they are unlikely to be used in a persistent
way, just for the clipboard.

The problem is easy to reproduce in Impress: Insert->Field->Time(fixed)

(regression from 9830fd36dbdb72c79703b0c61efc027fba793c5a)

Change-Id: I5946c5b94dd5a509805b6dc40461bbd910caffc4
(cherry picked from commit 7b9c61c7f20a679c5316a288c2ec2ffbf04b4200)
fdo#70278: editeng: fix Time fields in Impress

Apparenty an uninitialized SvxTimeField is created instead of the
SvxExtTimeField that is needed to preserve the value and format.

(regression from ee5fc5d25fe102c30daf7d181b8181d40b85a4f3)

Change-Id: I36b16af0c143e8b5451a1925806756492dc2334e
(cherry picked from commit 1235e694c21f6e3e000e24a176123c386ea91df1)
sax, xmloff: fix ODF import/export of text:time/text:time-value

The value written for an Impress time field is something like
text:time-value="0000-00-00T23:28:07" (in LO 3.5+) or
text:time-value="0-00-00T23:28:07" (in OOo 3.3) which contains an
invalid all-zero date.  Such values are actually rejected by the
ODF import since commit ae3e2f170045a1525f67e9f3e9b7e03d94f2b56b.

Actually there was no real support to read the RelaxNG type
timeOrDateTime before.

So fix that by:
- adding convertTimeOrDateTime/parseTimeOrDateTime functions to
  sax::Converter
- recognizing and ignoring the 2 invalid all-zero values written by
  LO 3.5 and historic OOo respectively
- writing a bare "time" in text:time-value if the DateTime struct
  contains zero Date members
  (Older OOo versions and AOO cannot actually read that, but everything
  they _can_ read is invalid ODF...)

Change-Id: I754076caee74a5163ed3f972af0f23796aa14f9f
(cherry picked from commit cc407e50e8a1a74f9d1ed29d444dce9bd2e9167a)