The other initializers call [self setup], but initWithTopViewController: didn't, so I added the call.
Added support for restoring UI state. Some of the code was taken from Tom Kraina's work on this feature (https://github.com/ECSlidingViewController/ECSlidingViewController/pull/329).