Adds evalStr function

I've implemented `evalStr`, and looking at other solutions on Github, it seems to be in line with them. However, there seems to be something wrong with the provided `parseExp` function which `evalStr` depends upon. It doesn't seem to correctly implement order of operation and relies exclusively on parentheses and left-to-right parsing for ordering.

For example, running `evalStr "2*3+4"` produces `Just 14` where it should be `Just 10`. `evalStr "2*(3+4)+2"` produces `Just 18` instead of `Just 16`. I'm not sure whether I am misinterpreting how `parseExp` works (i.e., are the arguments always `parseExp Lit Add Mul expr` in that order), but it seems to be a naïve implementation.