Implement Equals() and GetHashCode() for Element

This is to fix defect [MAGN-5110 List.UniqueItems does not work for Revit elements] (http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-5110)

Override ``Equals()`` and ``GetHashCode()``. 

![untitled](https://cloud.githubusercontent.com/assets/2600379/5022848/aa529fa4-6b27-11e4-9b4b-e035da6db333.png)

@ikeough , after I override these two methods, ``Elements.Equals()`` is called in ``ElementIDLifecycleManager.RegisterAssociation()/UnRegisterAssociation()``. Is it safe to do comparison based on ``Element.UniqueId``?