Add UserInput class

This will make managing fetching input from the user easier both in
terms of implementation and testing.

Change-Id: I5b043156bd5d0a8c33667929d91c9f5aeaf1a602
Reviewed-on: http://gerrit.causes.com/37384
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>