Added external connection as constructor

A constructor will now take an existing connection. This will flip
isExternalConnection to true, and thus calling connect() disconnect()
will have no effect (the connection is handled by the owner, not the
wrapper). This is a compromise I am making to make sure that, if
necessary, the implementor can call sqlite_ commands on the connection.
Otherwise, I have to have a getConnection function. Since it cannot be
const (will be unusable with sqlite3 as a result), it break
encapsulation.