Have past, future and recent return random dates

Functions `past` and `future` only returned dates EXACTLY N YEARS before
or after the reference date. Function `recent` only returned dates
EXACTLY N DAYS before the reference date.

For example, `faker.date.past(1)` would return either *Nov 12, 2014*, or
*Nov 12, 2013*, but nothing in-between.

Also, now you can call those functions without parameter, and N will
take the default value of `1`.
Merge pull request #138 from unindented/master

[fix] Have past, future and recent return random dates #110