lib/ostruct.rb: Update exception class

* lib/ostruct.rb (OpenStruct#modifiable): Builtin classies raises
  RuntimeError on frozen instance. TypeError is an old way.

* test/ostruct/test_ostruct.rb: Added tests for above.
lib/ostruct.rb: Standardize to use name class

* lib/ostruct.rb (OpenStruct#delete_field): Use Symbol instead of
  String. Not only adjusting style. Some special string behave
  `string.to_sym.to_s != string`.

* test/ostruct/test_ostruct.rb: Added tests for above.
lib/ostruct.rb: Enumerator should deal size

* lib/ostruct.rb (OpenStruct#each_pair): Currently, Enumerator has
  size. And Struct#each_pair keeps members-size.

* test/ostruct/test_ostruct.rb: Added tests for above.
lib/ostruct.rb: Add #name and #args on NoMethodError

* lib/ostruct.rb (OpenStruct#method_missing): NoMethodError
  should have #name and #args.

* test/ostruct/test_ostruct.rb: Added tests for above.