hash as primitive int, saveForProviders - avoid document copy

XmlElementStorage must pass any files to stream providers, project files too: step 2 — pass it
new StreamProvider API: saveContent accept byte[] instead of InputStream