[fixes #502] introduce NULL object pattern for Project

(cc @rjackson)