Implement custom smilie keyboard collection view layout.

The flow layout fundamentally doesn't work the way we want it to: when set to scroll horizontally, it lays out columns, whereas we want to lay out rows.

FLAnimatedImage fix: collection view cells set any image views' highlighted properties to YES, which breaks FLAnimatedImageView. (PR sent.)