Squashed 'puppi/' content from commit 0e146e4

git-subtree-dir: puppi
git-subtree-split: 0e146e4af1ba397f6934c1901cec30017f0841f2
Add puppi module