Create Pose Class and implement its interface (squashed)

commit 303f86e3b8785fc4ae779aedfb323869f68b525e
Author: Matias Anaya <matiasanaya@gmail.com>
Date:   Sun Sep 7 11:26:05 2014 +1000

    Implement pose.report()

commit ebcd02c13cd265d2c144b3ba8244c20c9a22eae9
Author: Matias Anaya <matiasanaya@gmail.com>
Date:   Sun Sep 7 11:16:54 2014 +1000

    Implement pose.rotate!()

commit 8bae63b49c1dfc135b672da432401818f881f0a3
Author: Matias Anaya <matiasanaya@gmail.com>
Date:   Sun Sep 7 10:28:33 2014 +1000

    Create Pose Class and implement pose.adjacent()