title: Why required and default are mutally exclusive in ndb?
body: <p>In old google appengine datastore API "required" and "default" could be used together for property definitions. Using ndb I get a</p>
  
  <pre><code>ValueError: repeated, required and default are mutally exclusive.
  </code></pre>
  
  <p>Sample code:</p>
  
  <pre><code>from google.appengine.ext import ndb
  from google.appengine.ext import db
  
  class NdbCounter(ndb.Model):
      # raises ValueError
      count = ndb.IntegerProperty(required=True, default=1)
  
  class DbCounter(db.Model):
      # Doesn't raise ValueError
      count = db.IntegerProperty(required=True, default=1)
  </code></pre>
  
  <p>I want to instantiate a Counter without having to specify a value. I also want to avoid someone to override that value to None. The example above is constructed. I could probably live without a required attribute and instead add an increment() method. Still I don't see the reason why required and default are mutually exclusive.</p>
  
  <p>Is it a bug or a feature?</p>