Font and textures is supposed to be used as value instead of reference.

Uses internal shared pointer,.The external interface is change in order
to make the api less verbose to use. The project is compilable (at least
in VS 2013.