Abstract Encoder
Fix yo bugs, sucka!

* Don't commit bugs
* Fix your broken tests
* otherwise I kill you
Update environment_test.go
Merge branch 'Services' into services-reader

Conflicts:
	role.go
	role_test.go
Tests still fail but these couple of debug Println's at least highlight where the problem is. Hopefully i'll pick it up again later tonight.
Spew'n
This is our problem, a bytes.Buffer only .Read's through once and the http request is reading multiple times. So is the lol. lol!
move the body copy out beforoe the http.NewRequest

This way we get at the body bytes before the request has a chance to
muck with it. I chose to use a 512bytesBuffer so I could use the copy
func on the body input. This commit makes all the tests pass
remoove spew from http.go
depricate Type.Read for JSONReader in environment

moving away from adding the Reader Interface on types and having an
explicit JSONReader for converting chef objects to JSON