Makes request obey the timestampFormat in the service api by converting ...

It appears function calls requiring datestamps are not being converted correctly for Amazon Simpleworkflow due to it being the only service using the unixTimestamp rather than an ISO or UTC format.  Below are some failure examples. 

To fix this I pass in the api service object into param_validator, store it as a member variable (which should be okay since the context only lives for the single function call see: event_listeners.js:107).   The code converts the value of it is instance of date and changes the validation for 'timestamp' where the api timestampFormat is 'unixTimestamp'.   All functions in the recursive type-checking now return the parameter such that the changes are reflected back in the original caller and req.params in event_listeners.js:107 contains the type conversion.
 

```
var SWF   = require ('aws-sdk').SimpleWorkflow;

(new SWF()).client.countOpenWorkflowExecutions(
            {
                domain          : 'tom-test-domain'
              , startTimeFilter : {
                  oldestDate:   new Date() 
                }
            },
        function (err, dat) {
            console.log(err);
            console.log(dat);
        });
```
Outputs...

```
{ [SerializationException: class java.lang.String can not be converted to milliseconds since epoch]
  message: 'class java.lang.String can not be converted to milliseconds since epoch',
  code: 'SerializationException',
  name: 'SerializationException',
  statusCode: 400,
  retryable: false }
{ [SerializationException: class java.lang.String can not be converted to milliseconds since epoch]
  message: 'class java.lang.String can not be converted to milliseconds since epoch',
  code: 'SerializationException',
  name: 'SerializationException',
  statusCode: 400,
  retryable: false }
```


Converting it to the ISO-8601 manually doesn't help...
```

var SWF   = require ('aws-sdk').SimpleWorkflow;

function toISO8601(date) {
    var pad_two = function(n) {
        return (n < 10 ? '0' : '') + n;
    };
    var pad_three = function(n) {
        return (n < 100 ? '0' : '') + (n < 10 ? '0' : '') + n;
    };
    return [
        date.getUTCFullYear(),
        '-',
        pad_two(date.getUTCMonth() + 1),
        '-',
        pad_two(date.getUTCDate()),
        'T',
        pad_two(date.getUTCHours()),
        ':',
        pad_two(date.getUTCMinutes()),
        ':',
        pad_two(date.getUTCSeconds()),
        '.',
        pad_three(date.getUTCMilliseconds()),
        'Z',
    ].join('');
}

console.log(toISO8601(new Date()));

(new SWF()).client.countOpenWorkflowExecutions(
            {
                domain          : 'tom-test-domain'
              , startTimeFilter : {
                  oldestDate:   toISO8601(new Date())
                }
            },
        function (err, dat) {
            console.log(err);
            console.log(dat);
        });
```
Outputs..
```
2013-03-27T17:18:55.259Z
{ [SerializationException: class java.lang.String can not be converted to milliseconds since epoch]
  message: 'class java.lang.String can not be converted to milliseconds since epoch',
  code: 'SerializationException',
  name: 'SerializationException',                                                                                                                                                                                                              
  statusCode: 400,                                                                                                                                                                                                                             
  retryable: false }                                                                                                                                                                                                                           
{ [SerializationException: class java.lang.String can not be converted to milliseconds since epoch]                                                                                                                                            
  message: 'class java.lang.String can not be converted to milliseconds since epoch',                                                                                                                                                          
  code: 'SerializationException',                                                                                                                                                                                                              
  name: 'SerializationException',                                                                                                                                                                                                              
  statusCode: 400,                                                                                                                                                                                                                             
  retryable: false }     
```