Add Aliases to Contain

Now if you have a better way of handling it certainly do it but I needed it now so I added it :)

1. There is a new option "auto_alias"
    a. If this option is set; if it sees an underscored value it will automatically create an alias that is camel cased.
2. There is a new property aliases in the AbstractEntity and the AbstractDefinition
3. The compiler needed a few quick updates that would allow to pull aliases, this worked as expected.

This way if you call $this->property('some-alias') it will return back to you the proper property.