Add a front-end that is based on expression templates

Only SSE2-4 implementations work at the moment.

This is API-breaking change