title: Built-in tester 'define' not working as I expected
body: <p>I have a template with a section that should be rendered if a variable is defined. But I can't make it work. I have something like this in my project:</p>
  
  <pre class="lang-rust prettyprint-override"><code>use serde::Serialize;
  
  #[derive(Default,Serialize)]
  struct AStruct {
    parameter: Option&lt;String&gt;
  }
  
  // AStruct { parameter: None }
  let a_struct_instance = AStruct {..Default::default()};
  TEMPLATES.render("template.conf", &amp;a_struct_instance) {...}
  </code></pre>
  
  <pre><code>// template.conf example:
  //
  // {% if parameter is defined %}
  //   SOMETHING TO SHOW
  // {% endif %}
  </code></pre>
  
  <p>The template is rendered like if parameter is defined, why is that? </p>
  
  <p>The parameter field is None, but in the build-in tester function, 'value' is Some(Null) and is_some() return true on this. </p>
  
  <p><a href="https://github.com/Keats/tera/blob/master/src/builtins/testers.rs#L36" rel="nofollow noreferrer">https://github.com/Keats/tera/blob/master/src/builtins/testers.rs#L36</a></p>
  
  <pre class="lang-rust prettyprint-override"><code>/// Returns true if `value` is defined. Otherwise, returns false.
  pub fn defined(value: Option&lt;Value&gt;, params: Vec&lt;Value&gt;) -&gt; Result&lt;bool&gt; {
      number_args_allowed("defined", 0, params.len())?;
      Ok(value.is_some())
  }
  </code></pre>
  
  <p>What I'm doing wrong?</p>