caps: When getting capsfeatures and none are there, store sysmem capsfeatures
caps: When getting capsfeatures and none are there, store sysmem capsfeatures

... instead of returning a reference to a global instance. The caller might
want to change the global instance otherwise, which causes funny effects like
all global instances being changed and at the same time nothing in the caps
being changed.

As the caps might be immutable while we do this we have to do some magic
with atomic operations.

https://bugzilla.gnome.org/show_bug.cgi?id=723236

centricular/gstreamer,cablelabs/gstreamer,cablelabs/gstreamer,jpxiong/gstreamer,krichter722/gstreamer,StreamUtils/gstreamer,cfoch/gstreamer,jpakkane/gstreamer,shelsonjava/gstreamer,jpxiong/gstreamer,mparis/gstreamer,cablelabs/gstreamer,cfoch/gstreamer,StreamUtils/gstreamer,StreamUtils/gstreamer,cfoch/gstreamer,cablelabs/gstreamer,ensonic/gstreamer,jpakkane/gstreamer,shelsonjava/gstreamer,mparis/gstreamer,jpakkane/gstreamer,cfoch/gstreamer,mparis/gstreamer,surround-io/gstreamer,centricular/gstreamer,Lachann/gstreamer,krichter722/gstreamer,jpxiong/gstreamer,shelsonjava/gstreamer,centricular/gstreamer,jpakkane/gstreamer,cablelabs/gstreamer,shelsonjava/gstreamer,ensonic/gstreamer,surround-io/gstreamer,Lachann/gstreamer,Lachann/gstreamer,krichter722/gstreamer,krichter722/gstreamer,ensonic/gstreamer,mparis/gstreamer,surround-io/gstreamer,surround-io/gstreamer,jpxiong/gstreamer,centricular/gstreamer,Lachann/gstreamer,shelsonjava/gstreamer,ensonic/gstreamer,jpakkane/gstreamer,StreamUtils/gstreamer,ensonic/gstreamer,StreamUtils/gstreamer,jpxiong/gstreamer,surround-io/gstreamer,Lachann/gstreamer,cfoch/gstreamer,mparis/gstreamer,krichter722/gstreamer,centricular/gstreamer