Made several changes to DbModel

- Not using self::init anymore, unreliable
- Determines table name per allocation of QueryBuilder, cant save in
static variable anyways as before (I don't even know how I believed it
would work)
- Added Joins to prepare for has_and_belongs_to_many, but it is still
not 100% in use