fixed issue that caused KeyError on stray colons

When running any insert/update query that had a colon in it there is a KeyError exception that's raised.  This effectively means you can't have any values in any fields that have colons (technically, you can, if you put "strategy_options" before every colon - but that would mean inserting values that have "strategy_options" in them).

This fix just ignores any colons that go before text that doesn't match a given key in the parameter argument.

For instance, you can now do this:
````python
prepare("update mytable set counter = counter + 1 where mykey = 'a:special:key'", {})
```

whereas previously this would have resulted in a key error (because the params dict doesn't have 'special' or 'key' as keys).  However, that query is perfectly valid.