Optimize memset, especially for Thumb2, and update original memset

Optimize memset, with special consideration for Thumb2 code size.
Benchmark tests show improved performance for common, smaller
sizes.

The original kernel memset function is updated with the version
that was committed to the mainline kernel around March 2013.

Also add a benchmark test for unaligned size of 1023 bytes.