Initial import. Expressions basically working.
Quick and lazy attempt at a readme.
Made refs const and removed std::move in make_*().
Make A and E return by value and not by rvalue reference.