Augmenting the Repertoire of Design Patterns for Self-Organized Software by Reverse Engineering a Bio-Inspired P2P System