This is one of the patches related to name-node memory optimization
HADOOP-1687.
It moves INode into a separate (base) class with two separate derived classes for files and directories.
I also eliminated unnecessary recursions in a couple of places.
And made preparation for further steps outlined in
HADOOP-1687.
http://issues.apache.org/jira/secure/attachment/12364200/separateINode.patch
applied and successfully tested against trunk revision r567877.
Test results: http://lucene.zones.apache.org:8080/hudson/job/Hadoop-Patch/582/testReport/

Console output: http://lucene.zones.apache.org:8080/hudson/job/Hadoop-Patch/582/console