* added VideoInfo(AbstractVideoInfo) constructor, to support later implementation for reusing info scraped into VideoPreviewInfo, into VideoInfo
* Made the Extractor class behave as a per-video object;
- most method return values are video-specific, so it makes sense (to me) to have Extractor be stateful.
- The only stateless methods are getVideoUrl(), getVideoId() and loadDecryptionCode(String)
* Implemented a constructor for YoutubeExtractor, which performs all initialisation work
* renamed VideoInfoItem to VideoPreviewInfo
* moved streaming service-related classes into their own, new package services
* added javadoc to some classes and methods (where functionality is known well enough to explain)
* De-duplicated common fields between VideoInfo and VideoPreviewInfo by moving them into a common superclass: AbstractVideoInfo
* Removed 2 methods which only call super(), and therefore are unnecessary: PlayVideoActivity.onResume() and PlayVideoActivity.onPostCreate(Bundle)
Conflicts:
app/src/main/java/org/schabi/newpipe/VideoItemDetailFragment.java -- still used class-based passing
app/src/main/java/org/schabi/newpipe/VideoItemListActivity.java -- just some whitespace
- added play video button for better lefthand support
- wrote codepart to darkon5s listitem improvements
- set minimum api level to 15 (Android 4.0.3 support)
- updated to sdk level 23 including the new support libs