Filter list of available parts for drag/drop with respect to zones

Filter the list of parts which can be dragged/dropped in "organize parts" mode to only include those which are allowed in one or more zones within the edited item or child parts. The list of available zones includes zones on the item being edited as well as zones found by recursing the subtree below this item.

Also sort the list alphabetically if `SortOrder` is not specified in part definitions.

With these changes, the list of available parts will include fewer (if any) parts that cannot be used on the page in its current state.