Add support for Big and Little Endian modifiers

This pull request also fixes encoding issues in existing tests caused by upgrading ruby from 1.8.7 to 1.9.3.
@Fryguy, @chessbyte please review.


This string doesn't read like English when run as a standalone spec because of the "should ==" at the end.  Plus, it's hard to differentiate it from the next `it`.  In this case you are essentially doing two tests on the same stuff, so you can probably just put them in the same it.  Maybe something like

```ruby
it '.new with another big endian BinaryStruct' do
  s  = BinaryStruct.new(BIG_STRUCT_DEF)
  s2 = BinaryStruct.new(s)
  s2.should == s
  s2.should_not equal(s)
end
```