A few changes to improve readout accuracy & clean code

- Rename pulseaudio:GetState to pulseaudio:UpdateState() to more
  accurately reflect its function of updating the state of the active
  object.
- Split up the widget's update function into _update and
  widget.Update(). _update updates the widget's value from the pulse
  handle's cache, while widget.Update() updates the cache first, making it
  functional for calling in a timer to respond to outside updates.