Resolves https://github.com/kylef/Stencil/pull/110#issuecomment-375998844
When getting descendant that represents optional property casting it to Optional will just wrap it in another optional, so instead we use a custom protocol that only Optional implements and that provides unwrapped value or returns nil. If property is not optional we will just return its value.
Resolves https://github.com/kylef/Stencil/pull/110#issuecomment-375998844 When getting descendant that represents optional property casting it to Optional will just wrap it in another optional, so instead we use a custom protocol that only Optional implements and that provides unwrapped value or returns nil. If property is not optional we will just return its value.