Update .travis.yml
Update conftest.py
Update schema.py

This will allow for the underlying dictionary implementation to be configurable without changing the current/default behavior. For example:

```python
from collections import OrderedDict

from halogen import Schema, Link, Attr, Embedded

class MySchema(Schema):
    dict_type = OrderedDict

OrderedSchema = type('MyOrderedSchema', (BaseSchema,), OrderedDict([
    ('self', Link()),
    ('field', Attr()),
    ('sub', Embedded())
]))

OrderedSchema.serializer(obj)
```

This would allow someone to have predictable serialization results:

```json
{
    "_links": { ... },
    "field": "value",
    "_embedded": { ... }
}
```
Update schema.py

Make sure compartments are also the specified dictionary type.
Add `creation_counter` to sort schema attributes
Conditionally require ordereddict in setup.py
Update test_complex_type.py to evaluate a whole JSON document
Remove ordereddict from testing requirements
Make things a little more readable when constructing the attribute list
Update `test_creation_counter` to be a little more valuable
Merge branch 'master' of github.com:mattupstate/halogen