Moved tag-based logic of Tuple template into BasePtr
* By defining a general get() member method we can limit the _tag-awareness_ to the BasePtr struct where it belongs
* Added ptr() member method overload to Tuple which returns the current base pointer