few minor improvement

* added isVisible() method
* added setDate(Date object) method to set a specific datetime
  (null to use current datetime)
* sun_position will be recalculated only when the overlay is visible