Allow alignment variables to be optional

Sometimes you want to align top/leading/trailing but maybe not bottom to a view. These changes allow any of the parameters on the align methods to be optional and ignored if the value is nil.