May be you don't have "Portlet" class. Try using CWidget instead. In some demos the widgets extend "Portlet" class, but there is a "Portlet" class which extends "CWidget".
Portlet isn't a default Yii class. You see it in the demo/definitive guide as a (commonly used) example of extending Yii's default classes.
For your approaches 1 and 2, as i understand it you are just importing (i.e. including) the classes in those paths, you don't actually run the widget, so there isn't any error.
On approach 3, because there isn't any include file Portlet.php in Yii (it really isn't a default Yii class), it throws that File not found error.
Edit:
A second look at your code tells me that it doesn't work even if you extend CWidget as i understand it, there's no function renderContent in CWidget.
try changing that function to
public function run()
By the way some of you might have seen me answering a few questions around these forums recently even though i'm a rather new member. I've discovered Yii not more than a month ago really, but i've already built a couple of sites for freelance clients on Yii already.
Yii really has cut my development time by more than 70%, and i find it really suits my style of thinking in terms of programming logic, so I'm trying to pay back the community by helping out people here with problems as much as i can!