improve StateViewer from inside and outside

This refactors the StateViewer to improve the style (that's for the
outside), the current style making my eyes hurt. In addition, it
also refactors parts to:
 - avoid abusing classes by setting instance variables on them
   when using define_method is enough
 - avoid creating a task inspector until it is needed
 - renaming port_name to task_name since ... it is a task name

Old style:
![Old](https://cloud.githubusercontent.com/assets/292/5164653/6bac340c-73c1-11e4-8766-f551b96ff8ea.png)

New style:
![New](https://cloud.githubusercontent.com/assets/292/5164654/7051d598-73c1-11e4-9ac4-ce5aa7a89f78.png)