Allow unprepared execution of QgsExpression

The documentation of QgsExpression states: 

> For better performance with many evaluations you may first call prepare(fields) function
to find out indices of columns and then repeatedly call evaluate(feature).

Currently it is not optional (may) but mandatory to do this. Unprepared execution silently fails to evaluate properly.
This patch introduces unprepared execution.