Directions have abstract array representation

This is a pure refactor of the Direction subclasses. it implements `to_command` in terms of `to_a`, which is an abstract representation of each svg command, basically

    > Savage::Directions::LineTo.new(100,200).to_a
    => ["L", 100, 200]

I'm using this to process a large number of documents and then store them as JSON, which are then rendered using [Quartz drawing commands](http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/Introduction/Introduction.html). I also removed calls to `super().gsub(/[A-Za-z]/,'')` and instead explicitly stated the control points in `to_a`.