Use @property annotation for some attributes of Input. This makes more things calculated as they are used, and makes Input object store less stuff as attributes on itself.
Merge branch 'python3.4' into 3.4-use-property-for-input
Merge branch '3.4-use-property-for-input' into 3.4-refactoring