Make encode much faster on large payloads

To compare, try something like this:

  AMQ::Protocol::BodyFrame.new('hi' * 10000000, 2).encode

This patch eliminates unnecessary copies of and iterations over the
payload.
Copy the payload if its encoding needs to be changed
Merge pull request #27 from gdb/master

Make encoder faster on large payloads
Change log update
1.1.0
Now working on 1.2.0.pre1
Ignore *.bundle
Adds 8bit signed and 16bit signed integers to table decoder
Adds specs to validate 8bit/16bit signed decoding
Merge pull request #29 from cadwallion/signed_ints

Signed Integer Decoding
Replace broken link with an inline comment
Frame body on Ruby 1.9+ using bytes, not code points

String#slice will only use byte slicing if the string
is considered to be in ASCII.

References ruby-amqp/bunny#97
1.2.0
Now working on 1.3.0.pre1
Add a test for #30, close #30
Typos
Pack floats table values in network and not native order
1.3.0
Correct 1.8.7 tests
Now working on 1.4.0.pre