Started using doc comments
Added FuncResultException which stores description, and reorganised return value declarations to be on the same line as the function
Updated header guards to make it explicit that the classes are in the core namespace
Removed redundant MethodResult header