Add support for TravisCI.

Also add TravisCI build status badge to README.md.
Correct tests for recent getblock updates.
Make id omitemtpy to match spec better.
Update test coverage.
Handle optional verbose parameter to getrawmempool.

This does remove the `nicer' type handle for getrawmempool for now since
it is no longer so simple.

ok jcv.
Allow getblock result to be string or BlockResult.

The getblock command has recently added a verbose flag which alters the
output.  The previous code added a new field "Hex" to the BlockResult, but
this is not consistent with the origin getblock RPC call which returns a
string when verbose is false and the BlockResult JSON object when it is
true.

This commit corrects that by first removing the Hex field from the
BlockResult and second allowing the result for getblock to be either form.
Allow getrawtransaction result to be string.

The getrawtransaction command has recently added a verbose flag which
alters the output.  The previous code made use of the "Hex" field of the
TxRawResult to return the information, but this is not consistent with the
original getrawtransaction RPC call which returns a string when verbose is
false and the TxRawResult JSON object when it is true.

This commit corrects that by allowing the result for getrawtransaction to
be either form.
Correct Vin ScriptSig to properly omit when empty.

In order for a field which is a struct to be omitted from JSON
marshal/unmarshal, it must be a pointer so the json package can tell when
it's empty (when it's nil).
Make ScriptSig anonymous struct an exported type.

The previous commit modified the Vin ScriptSig field to be a pointer to an
anonymous struct so it could be properly omitted.  However, the callers
need to be able to create a new object to assign to the field, so this
commit makes the previous anonymous struct an exported type named
ScriptSig.
The sequence num of a tx input is a uint32.