Handle boolean return type for callbacks
Use custom exception class for GError handling

This enables passing of all GError properties within the exception
object.
Modernize some assertions
Update test to test vfunc error propagation

Exceptions raised inside vfunc implementations should be propagated
using the GError mechanism if available.
Simplify optional argument handling
Note a SMELL
Fix test to allow for memory re-use

The memory used by `ob` may be re-used for `res`, so the pointers are not
always different.
Propagate exceptions in callbacks through GError
Refactor conversion of callback error arguments

The error argument is now treated like a special case of an :out
argument.
- Make ErrorTypeInfo behave like an info with tag :error.
- Prepare InOutPointer from _error argument.
- Use RubyToCConverter to generate conversion code for thrown exception.
- Change ITypeInfo extension to indicate :error arguments must be
  converted.
Add a TODO
Merge branch 'master' into vfunc-with-error
Style fixups
Consitently use proc instead of lambda
Handle VFuncs with GError arguments [merges 'vfunc-with-error']
Add Rubocop configuration
Add odd but passing test for #vfunc_with_callback
Add support for GBytes (GLib::Bytes)