Make `any/2` and `all/2` efficient using `foreach`
`limit` should use `break`
`error(x)` should not `tostring` its arg; fix #466