Fall 2014 Project: Awesome additions

This branch/pull request represents the work done to add new C++ question types to Project: Awesome
I wonder why we are writing a case statement here to map 0, 1, 2, 3 to one, two, three, four---when we could have just made CppRandomNames be an array indexed with [0,1,2,3] and then this entire function becomes a one liner:

return CppRandomNames[num][randomStream.nextIntRange(CppRandomNames[num].length)];

Also, random already has a utility function for doing  a[randomStream.nextIntRange(a.length)].  That function is the pick function.  So this could be even shorter:

return randomStream.pick(CppRandomNames[num]);