A general nonlinear adaptive control scheme for finite-time synchronization of chaotic systems with uncertain parameters and nonlinear inputs