add getFieldAttributes + setFieldAttributes

Went back and forth numerous times on whether these should be stored as Arrays or as Objects.  Ultimately, it makes the most sense to store them as Objects.  While this will cause problems with some templating languages it can be easily overriden