Make HP and MP bounded

- Class 'Bounded' is added. The name follows the Haskell's typeclass.
- It provides upper-limit and lower-limit.
Add comments for Bounded