added tenantId/projectId to volume and snapshot

added tenant id to  volume and project id to snapshot
wont do it nullable be simpler and will present a cleaner code?
what will happen when we will have multiple extension?
if you still want to go with public class ExtendedSnapshot extends Snapshot let me know i'll do it...