Simplify ls functions and add new flags 

New flags:
* -d, -directory
* -n, -numeric-uid-gid
* -r, -reverse

In addition to new flags, several functions have been rewritten/simplified.
Remove redundant showHidden check

* Checking showHidden in isHidden is redundant when the check is performed in scanDirectory.
* The isHidden function is now renamed to fileIsNotHidden, to reflect it's usage in scanDirectory.
* This patch also includes a simple bug fix for the resetTerminal function used in printing from top to bottom, which wasn't working correctly.
Function cleanup

* Instead of counting ID length at the same time as counting size length, they have been split into two different goroutines.
* The scanDirectory function has been made easier to read by the addition of a checkForHiddenFiles function.
* getUserList and getGroupList have had their number of steps reduced. Instead of temporarily storing the uid/gid in a variable, it is appended directly to the list.
* printLongModeFile has been shortened by the addition of a checkIfSymlink function.
Reorganize variables and functions

Move functions around, merge the getTopToBottomData function into getFileStats, and create an openFile function to simplify the bufferUse/groups functions.
Fix bug with printOneLineCheck
Implement human-readable format

Supports reporting in K, M, and G.
Merge pull request #24 from mmstick/ls-enhancements

ls enhancements