cache platform string

Hi, platform string is never change while at least app runtime, so it would be better cashing it.

This branch done this by `dispatch_once` singleton. It brings a little performance improvement.