title: pyephem advances observer date on NeverUpError
body: <p><strong>First Question:</strong>
  I'm looping over a large group of lat/lons and dates to find moon rise/set times.  Some of these points are near the poles.
  The following code advances the observer's date on <code>NeverUpError</code></p>
  
  <pre><code>moon = ephem.Moon()
  obs = ephem.Observer()
  obs.lat='89'
  obs.lon='0'
  obs.date = ephem.Date('2014/01/01')
  print obs.date
  # 2014/1/1 00:00:00
  obs.next_rising(moon)
  # Traceback (most recent call last):
  #   ...
  # ephem.NeverUpError: 'Moon' transits below the horizon at 2014/1/1 12:04:01
  print obs.date
  # 2014/1/1 12:04:01
  </code></pre>
  
  <p>Is there a way to check for this before calling <code>obs.next_rising(moon)</code>?  I would like to retain the date in the observation.  I currently use a try/except block to catch it and reset the date.  Is there a better way?</p>
  
  <p><strong>Second Question:</strong>
  Related to the first, is the library thread safe? I set it up to calculate multiple dates at a time in separate threads using the Queue and threading modules.</p>