Add _pull_dependencies() that fetches BOM children and downloads
missing files to canonical paths before an assembly document is
opened, so PropertyXLink references resolve correctly.
- Create _pull_dependencies(): iterates BOM, fetches canonical item
description via get_item(), downloads latest file revision for each
missing child
- Modify open_item(): detect assembly item_type and call
_pull_dependencies() before opening
- Silo_Open: prefer open_item() when part_number is available so
assemblies opened from search results also pull dependencies
- Silo_Pull: pull dependencies with progress dialog after main file
download completes, before reopening the document
Closes#337