dev: shared_deq: provide sdeq_pop()

Provide an sdeq_pop() macro, which returns the queue entry container
address of the popped entry.

The previous commented out implementation did not work properly due to
the use of __mptr.  container_of() also uses the __mptr identifier,
which resulted in the inner scope __mptr being initialized with itself.

Change-Id: Ided5c0bff4ee993b42b56b1ce68c09f90aaabcf1
dev: shared_deq: extern forward declarations

Provide EXTERN_SHARED_DEQ() to allow forward declaring an extern
shared_deq, which may be used across compilation units.

Change-Id: Ie017c8f6388775d47d6553904069bba743ba890a