title: Create a time_point at seconds::max results in negative value
body: <p>I'm trying to use a time_point to effectively represent forever by setting it to seconds::max which, I believe, should represent that much time since epoch. When doing this, though, I get -1 as the time since epoch in the resulting time_point. What am I not understanding?</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;chrono&gt;
  using namespace std;
  using namespace std::chrono;
  
  int main() {
      auto tp1 = system_clock::time_point( seconds::zero() );
      auto tp2 = system_clock::time_point( seconds::max() );
      cout &lt;&lt; "tp1: " &lt;&lt; duration_cast&lt;seconds&gt;(tp1.time_since_epoch()).count() &lt;&lt; endl;
      cout &lt;&lt; "tp2: " &lt;&lt; duration_cast&lt;seconds&gt;(tp2.time_since_epoch()).count() &lt;&lt; endl;
      return 0;
  }
  </code></pre>
  
  <p>The output running that is:</p>
  
  <pre><code>tp1: 0
  tp2: -1
  </code></pre>