SQLite3 Support (v4.0.4 compatible)

This closes issue #99 .  It is based off of @axelaxel 's previous PR #398 (from Jan 2013)
The first commit is axelaxel's work, the second is changes needed to work with backup.

I can squash the two commits, if that is preferred.

I also tested this code with a simple SQLite database and backup script, it worked fine.
It's better to initialize the `db_name` return value on a `db_name_list` variable rather than to invoke the `db_name` method for every database. That also means that sqlitedump needs to be called before that. Also the `db_name` method doesn't return just one name, but multiple and always in an Array. So it would become:

```ruby
dumps = sqlitedump
db_name_list = db_names
dumps.each_with_index do |dump, i|
  # ...
end
```

The `each_with_index` also removes the use of the i variable declared on line 34 and used on line 58.