Feature interfaces

* StreamFeature for single feature
* CompositeStreamFeature to allow embedding features
* StreamFeaturesHolder as a simple way to embed features
  (i.e. implements CompositeStreamFeature)
* XMPPStreamFeatures as a root of stream:features