Minor restructuring around GetDrawableIds

This pull request exposes a new ```GetDrawableIds``` method from ```NodeModel``` class, and turn the original method into ```protected virtual GetDrawableIdsCore``` that derived classes can choose to override. Currently ```Watch3D```, ```WatchImageCore``` and ```Watch``` class override method virtual method to return an empty list, signifying that nothing should be rendered for the node. This new method will be used by the upcoming ```UpdateRenderPackageAsyncTask``` class to determine if a given node requires an update to its associated render packages.

Hi @lukechurch, @ikeough this pull request is meant to reduce sizes of future pull requests, please take a look. Thanks!