Add transformable module so that paths and directions can be transformed

Paths, sub paths and directions can be transformed now. e.g.

~~~ruby
path.translate    tx, ty
sub_path.rotate   90
direction.skew_x  20
~~~

Transforming paths cause their sub paths transformed.
Transforming sub paths cause their directions transformed.

Some kinds of transforming are not supported yet:
rotating, skewing on H/h, V/v commands because this cause commands to other types ( H/h -> L/l )
We may implement them later.

I made change because in my project i needed to transform all paths recursively.
I'm not quite sure if it is good to merge this pull request.
what do you think? :)