Add gapless playback support for NuPlayer

This makes NuPlayer use a SkipCutBuffer when needed, and adds a new
AudioSink method to retrieve the number of frames written so far, so
NuPlayerRenderer can calculate how much data it can write without blocking.
Also make some more methods const.

Change-Id: Id7d253ad8a7b85e9a84ca2baafbe32817b16c744
diff --git a/include/media/MediaPlayerInterface.h b/include/media/MediaPlayerInterface.h
index d4aa233..9a8f4b0 100644
--- a/include/media/MediaPlayerInterface.h
+++ b/include/media/MediaPlayerInterface.h
@@ -87,8 +87,9 @@
         virtual ssize_t     frameSize() const = 0;
         virtual uint32_t    latency() const = 0;
         virtual float       msecsPerFrame() const = 0;
-        virtual status_t    getPosition(uint32_t *position) = 0;
-        virtual int         getSessionId() = 0;
+        virtual status_t    getPosition(uint32_t *position) const = 0;
+        virtual status_t    getFramesWritten(uint32_t *frameswritten) const = 0;
+        virtual int         getSessionId() const = 0;
 
         // If no callback is specified, use the "write" API below to submit
         // audio data.