basefilectx: move isexec and islink from memfilectx

This will be used in the future for creating memctx objects from other
store-type objects, such as a patch store or even another context.
basectx: add missing, merge, and branch args to dirty method

This fixes a discrepency for basectx and classes that inherit from it. Now
callers can pass these arguments to any context without an exception being
raised.