title: handling optional field validation
body: <p>I have a simple problem and am unsure the best way to handle it. I have a schema defined as follows:</p>
  
  <pre><code>class MySchema(Schema):
      title = fields.String(required=True)
      imageUrl = fields.Url()
  </code></pre>
  
  <p><code>imageUrl</code> is an optional field, sometimes it will be None/null. If this happens, it's ok and it doesn't need to be a valid url. But I when I do:</p>
  
  <pre><code>my_schema.load(request.get_json())
  </code></pre>
  
  <p>on incoming data that is PUT, the url field records an error: <code>Field may not be null.</code></p>
  
  <p>I thought using <code>partial=True</code> in the call to load would work, but it doesn't. I also didn't like that because this isn't a partial, it's the full object, it just so happens some of my fields are nullable in the DB.</p>
  
  <p>How do I get marshmallow to validate the imageUrl when it is non-null, but to ignore it when it is null?</p>