Add serial num to interrogate, fix bugs.

- Add serial number collection to interrogate
  - Add WMI artifact and parser
  - Add dmidecode to execution whitelist
  - Add hardware info to client object
- Fix test loading, and some tests that weren't being run correctly
- Add check for Gets of non existant attributes when an explicit type is passed
  to open
- Fix generation of client summary object during interrogate, don't store it in
  the client object anymore, generate on demand.
- Add checks for modifying of config lib constants
- Small refactor of http datastore to use more GRR-standard components, created
  more configurable options
- Removed protobuf descriptor-generating code from export.py. Instead,
  generating dynamic RDFValue class there and relying on EmitProtoDescriptor to
  generate correct descriptor on export. Also fixes
  https://github.com/google/grr/issues/64
Adding Matthew Iselin to the list of contributors.
Fix data export bug and age property bug.
Merge branch 'master' into ClientEnhancements
Mock smtplib. Skip mysql tests if no DB.

- Mock out smtplib.SMTP so we don't send email during tests
- Change test_lib to handle test skips in setUp
- Skip mysql tests if port == 0, this seems to be the best indicator of whether
  you have configured a DB or not. This avoids tests failing if you have the
  mysql client library installed but no actual database present.
Merge pull request #67 from destijl/test_fixes

Mock smtplib. Skip mysql tests if no DB.
Merge branch 'master' into ClientEnhancements