Fix #274

Be careful when setting default arguments:

```python
>>> def test(t=datetime.now()):
...     print t
... 
>>> test()
2014-09-19 14:45:59.698474
>>> test()
2014-09-19 14:45:59.698474
>>> test()
2014-09-19 14:45:59.698474
>>> test()
2014-09-19 14:45:59.698474
>>> test()
2014-09-19 14:45:59.698474
>>> 
```
Note that the time does not change. The call to ```datetime.now()``` is executed only once, upon execution of the ```def``` line, so the default time is always going to be whatever time it was when the interpreter when the interpreter read that line.

I would recommend changing the default to ```None``` and then in the function body,  ```if timestamp is None: timestamp = datetime.now()```:

```python
>>> def test(t=None):
...     if t is None:
...             t = datetime.now()
...     print t
... 
>>> test()
2014-09-19 14:50:47.398440
>>> test()
2014-09-19 14:50:48.278439
>>> test()
2014-09-19 14:50:48.838517
>>> test()
2014-09-19 14:50:49.334516
>>> test()
2014-09-19 14:50:49.758474
>>>
```

However, I agree with @squirrelo that this should just be assumed, rather than be passed in as an argument.  We have used this convention successfully on previous occasions, so I would do it just for consistency with the rest of the codebase, unless there is a reason this is a demonstrably better approach.