[Core] Constructors should take context.Context argument
Currently constructors don't take context.Context argument, but in general we should allow/handle this just like how methods require a context.Context argument.
This is useful because some methods might be called within the constructor that require a context.Context; for example, getting a collection from a database.