Non-Instantaneous Impulsive Differential Equations: Basic theory and computation