Implement touch

Squashed commit of the following:

commit c7211a3599f4cb74ebb42a7adbd5a02f92107945
Author: Nick Platt <platt.nicholas@gmail.com>
Date:   Fri May 23 23:43:24 2014 -0400

    Minor indentation fixes

commit 782a02fe2768cf9e457bb6db9e8a63615c3a4bd1
Author: Nick Platt <platt.nicholas@gmail.com>
Date:   Fri May 23 23:40:57 2014 -0400

    Fixes for latest rust

commit 51b0e59f75352bf65c89d2ab8cf0948da8404753
Author: Nick Platt <platt.nicholas@gmail.com>
Date:   Sun Apr 27 15:15:29 2014 -0400

    Fixups

commit 9efd1f4c07f4610e3067a5b2bd047eb117344cdf
Author: Nick Platt <platt.nicholas@gmail.com>
Date:   Sun Apr 27 14:20:11 2014 -0400

    Basic date and timestamp support

commit a354bc9c07a6ed2cd2748f1734a1ce0f6683e58c
Author: Nick Platt <platt.nicholas@gmail.com>
Date:   Sun Apr 27 01:37:37 2014 -0400

    Primary functionality in place

commit 8bbaa0caa34fbca129db0c86f32d376d6eafbe18
Author: Nick Platt <platt.nicholas@gmail.com>
Date:   Sat Apr 26 22:23:16 2014 -0400

    Support creating files

commit 5bf47c3c790b556b596d25a05cd74ca4c06b6d67
Author: Nick Platt <platt.nicholas@gmail.com>
Date:   Mon Apr 21 00:24:49 2014 -0400

    Add touch with basic usage text