Created IDbContext

Created IDbContext which can be used for restriction and Dependency
Injection, also updated all references from DbContext to IDbContext.