title: What is the purpose of FreeTable? It does not have the same behavior as user tables. It is not covered in the documentation
body: <p>Environment: DataJoint version (0.12.9) on Ubuntu with MySQL 5.7</p>
  <p>The concept of FreeTable is nice. Provide a <code>dj.conn()</code> object and <code>full_table_name</code> and a table you can manipulate is created, independent of modules, virtual modules and schemas.</p>
  <p>However, the behavior of this table is not like other user tables. For example, if you restrict with two dictionaries that should have no overlapping results, a normal table would return an empty set. However, a FreeTable return the results from just the second dictionary.</p>
  <p>For example:</p>
  <pre><code>FreeTable &amp; {'exists': 1} &amp; {'exists': 0}
  </code></pre>
  <p>should return an empty table because and entry can't be both 1 and 0 simultaneously.</p>
  <p>However, in this case the table that is returned is equivalent to:</p>
  <pre><code>FreeTable &amp; {'exists': 0}
  </code></pre>
  <p>(Also querying with <code>{'exists': 1}</code> in the second position returns <code>FreeTable &amp; {'exists': 1}</code>)</p>
  <p>The following works as expected and returns a table with no results:</p>
  <pre><code>FreeTable &amp; dj.AndList([{'exists': 1}, {'exists': 0}])
  </code></pre>
  <p>I believe the reason this happens is because <code>FreeTable</code> inherits from <code>Table</code> and not <code>UserTable</code>, where the metaclass properties take effect.</p>
  <p>My question is, what is the purpose of <code>FreeTable</code> and why couldn't it have inherited its properties from <code>UserTable</code> so it could be more useful?</p>