Fix to execute() to allow it to work if no params are passed to it

Hi,

I came across an issue when attempting to use the PDO data collector - calls to execute() with no parameters would fail (with a "no parameters" error or similar) if parameters were set through a bindValue() or other call.

It turned out that (in 5.3 at least, untested in other versions) that calling PDOStatement::execute() with an empty array as its parameter causes this error. This PR just sets the default to null and changes the bound parameter list to be able to work with null values.