Cleanup & two bugs

- probably due to rebase: `import validate_tuple` added in `feature.py`
- check for odd diameters `if not np.any([x & 1 for x in diameter])`
changed to `if not np.any([x & 1 for x in diameter])`