use elapsed macro rather than timing for loop, also allow seconds

This seems like it may be "fairer", though I'm not sure if it is more accurate or not. Thought I should throw it out there.

*There is also printing in seconds (if it takes that long).*
Ag. in retrospect this is obviously not going to be as accurate (as there is an accuracy limit which is avoided using the for  loop). Saying that, we can still use `@elapsed` here (but over the for loop), will update. One point to mention is the type inference of val - that could slows things down. :s