codec: Support embedded non-struct values, and clean up fast-path for specific container types.

Fix support for embedded pointer and non-struct embedded values

Clean up short circuit, to cover only specific scenarios which have a high chance of happening.

Fix Issue 19 .