Purge uses of _ufl_cell
Re-implement ufl_cell

Also ensure that _ufl_cell is never read from except in ufl_cell().
Fix UFL intersphinx