#25664 Better detection of storages with Null values

This change ensures that local storage and local project storage paths
are guaranteed to be non-null. In the case where a current os storage is
null (because it wasn't originally set up to support that platform), an
exception is raised.

This affects the behaviour of pipeline_config.get_data_roots() and
pipeline_config.get_local_storage_roots() which will now raise a
TankError whenever the detect a null value. This was not previously the
case, however it seems all the code assumes that values exist, so this
should hopefully make things clearer, both in the code and for users.

This commit also removes the unused internal method
pipeline_config.get_all_data_roots().

Closes #82.
[minor] Improved documentation for the file system creation methods.
For #25799 - Fixes updating a framework located in an include file.
Closes #86
Merge branch 'master' into 25699_fw_compatibility