CfAsUser becomes AsUser, now includes CF_HOME isolation

* add User struct

Squashed commit of the following:

commit a16ef65deb04ab804a16b6630a4c5791abe034d6
Author: Aram Price <aprice@pivotallabs.com>
Date:   Wed Mar 5 17:13:07 2014 -0800

    AsUser creates an isolated CF_HOME and restores the value on exit

    Signed-off-by: Tim Jarratt <tjarratt@pivotallabs.com>

commit 77c107d6d60a50f43e3759aed33984a4c40a8ebb
Author: Aram Price <aprice@pivotallabs.com>
Date:   Wed Mar 5 16:55:37 2014 -0800

    Fix spec description

    Signed-off-by: Tim Jarratt <tjarratt@pivotallabs.com>

commit 5ac891c3d9d13f8c5c4725c374d3186243a24f99
Author: Aram Price <aprice@pivotallabs.com>
Date:   Wed Mar 5 16:53:29 2014 -0800

    Formatting

    Signed-off-by: Tim Jarratt <tjarratt@pivotallabs.com>

commit bbbeb7f5d2507b030c7d39b213cf8f2c3d30aeee
Author: Aram Price <aprice@pivotallabs.com>
Date:   Wed Mar 5 16:08:06 2014 -0800

    Rename CfAsUser to AsUser per golang style guide

    Signed-off-by: Tim Jarratt <tjarratt@pivotallabs.com>

commit ce40144b9187e36dd9bc98f7229792c3ae0b6d26
Author: Aram Price <aprice@pivotallabs.com>
Date:   Wed Mar 5 12:21:50 2014 -0800

    Remove indirection

    Signed-off-by: Tammer Saleh <tammer@pivotallabs.com>

commit 2fca3f698672e2704c6de262643cc3a5ac76b45e
Author: Aram Price <aprice@pivotallabs.com>
Date:   Wed Mar 5 12:09:20 2014 -0800

    CfAsUser now takes User struct instead of username/pass

    Signed-off-by: Tammer Saleh <tammer@pivotallabs.com>

commit 32bc45f41395f0b460cd956c2c71a5b4afebc4a7
Author: Aram Price <aprice@pivotallabs.com>
Date:   Wed Mar 5 12:05:39 2014 -0800

    Add a User struct for holding credentials and target info

    Signed-off-by: Tammer Saleh <tammer@pivotallabs.com>

Signed-off-by: Tim Jarratt <tjarratt@pivotallabs.com>