Add named query parameter binding from map or struct.

Fixes #61 
Tested on mysql.

Allows selects like the following examples:

```go
dbm.Select(&dest, "select * from Foo where name = :name and age = :age", map[string]interface{}{
  "name": "Rob", 
  "age": 31,
})

rob := Person{Name: "Rob", Age: 31}
dbm.Select(&dest, "select * from Foo where name = :Name and age = :Age", rob)
```

Notes:

* Struct: "db" tags are ignored.  Keys should be named exactly as they appear in the struct.  
* The argument type is flexible.  Maps need string keys, but they can have any value type.  Structs can be pointer or non-pointer. 

I don't believe that maps or structs are currently allowed as query parameters, so I don't think this could possibly break any existing clients.  

Please advise if there are other test cases that you'd like.  (Feels like the tests could use a refactoring sometime soon..)