SyFi and SFC: Symbolic Finite Elements and Form Compilation