* use state instead
* rollback demo markdown
* clean test
* sider context should be clean
* update test case
* fix test
* update debug desc
* add siderCollapsed into omit
* rm useless code
In some situation `Sider` is deeply rendered in Children of `Layout`,
and if we don't want to judge whether `Layout` has sider, the attr `hasSider`
set to `false` should properly work. However `hasSider || this.state.siders.length > 0`
will ignore `hasSider` when it is `false`.
React component state updates using setState may
asynchronously update this.props and this.state, thus it is
not safe to use either of the two when calculating the new
state passed to setState, and instead the callback-based
variant should be used instead.