Feature/cyclicShapes

**Cyclic Shapes**: Not meant for hashing but to modify strings according to 110010-like patterns. Unlike Shape, patterns may start and end with 0s.
* CyclicShape class
   * fixed (at compile-time) 
   * generic
* ModifiedString for CyclicShapes
* ModifiedIterator for CyclicShapes
* Tests