Ensure notification observers are removed before deallocation

This PR adds a dealloc method that remove alls notification observers when a APLKeyboardControls instance is deallocated.

We were getting intermittent crashes because of observers lingering after the instance was deallocated.  Maybe I should have been setting inputFields to nil when the view is hidden, but adding this safety belt seems like a good idea to me.