Add Designdoc and refactor code
Refactor some implementations
Merge branch 'yummin'
Modify DESIGNDOC
Merge remote-tracking branch 'origin/master'

Conflicts:
	src/userprog/DESIGNDOC