Code cleanup

- Removed const specifiers from some of the Program's member functions.
- Moved the implementations of some Program-related functions
  to the implement/ directory.