[TASK] Clean up dualprocshm and circbuf

- Move critical section to circbuf module.
- Remove OPLK_OPTIMIZE macro.
- Use CONFIG_PCP macro to differ between kernel and user layer.
- Prepared circbuf module for shmmutex.

Change-Id: I94493a5bbe5ed98fe84874f76db02fe7bcc42b5e
[TASK] Add shared memory mutex implementation

The shared memory mutex implementation enables two processes sharing a
resource by using shared memory. The targets do not require to support
atomic instructions (like read-modify-write). The target shall provide
memory barriers to assure correct sequence of memory access!

Change-Id: I7eda5f602fa3be62d62e1b71d5ef27ea396c2f34
[TASK] Use shared memory mutex in hostif circbuf

Use shared memory mutex in hostif arch-specific circular buffer
implementations.

Change-Id: Ied151363bdcb2b4175ae9409553530e7d5ed6a4a
[TASK] Use shared memory mutex in dualprocshm circbuf

Use shared memory mutex in dualprocshm arch-specific circular buffer
implementations.

Change-Id: I6bd907773754cd5a4e524f82faf06fca33e99082